public override bool Equals(Object obj)
{
FileIOAccess operand = obj as FileIOAccess;
if(operand == null)
return (IsEmpty() && obj == null);
BCLDebug.Assert( this.m_pathDiscovery == operand.m_pathDiscovery, "Path discovery settings must match" );
if(m_pathDiscovery)
{
if(this.m_allFiles && operand.m_allFiles)
return true;
if(this.m_allLocalFiles == operand.m_allLocalFiles &&
m_set.IsSubsetOf(operand.m_set) &&
operand.m_set.IsSubsetOf(m_set)) // Watch Out: This calls StringExpressionSet.IsSubsetOf, unlike below
return true;
return false;
}
else
{
if(!this.IsSubsetOf(operand)) // Watch Out: This calls FileIOAccess.IsSubsetOf, unlike above
return false;
if(!operand.IsSubsetOf(this))
return false;
return true;
}
}
public override bool Equals(Object obj) { FileIOPermission perm = obj as FileIOPermission; if (perm == null) { return(false); } if (m_unrestricted && perm.m_unrestricted) { return(true); } if (m_unrestricted != perm.m_unrestricted) { return(false); } if (m_read == null) { if (perm.m_read != null && !perm.m_read.IsEmpty()) { return(false); } } else if (!m_read.Equals(perm.m_read)) { return(false); } if (m_write == null) { if (perm.m_write != null && !perm.m_write.IsEmpty()) { return(false); } } else if (!m_write.Equals(perm.m_write)) { return(false); } if (m_append == null) { if (perm.m_append != null && !perm.m_append.IsEmpty()) { return(false); } } else if (!m_append.Equals(perm.m_append)) { return(false); } if (m_pathDiscovery == null) { if (perm.m_pathDiscovery != null && !perm.m_pathDiscovery.IsEmpty()) { return(false); } } else if (!m_pathDiscovery.Equals(perm.m_pathDiscovery)) { return(false); } if (m_viewAcl == null) { if (perm.m_viewAcl != null && !perm.m_viewAcl.IsEmpty()) { return(false); } } else if (!m_viewAcl.Equals(perm.m_viewAcl)) { return(false); } if (m_changeAcl == null) { if (perm.m_changeAcl != null && !perm.m_changeAcl.IsEmpty()) { return(false); } } else if (!m_changeAcl.Equals(perm.m_changeAcl)) { return(false); } return(true); }