public PermissionSet(PermissionSet permSet) : this() { if (permSet == null) { Reset(); return; } m_Unrestricted = permSet.m_Unrestricted; m_CheckedForNonCas = permSet.m_CheckedForNonCas; m_ContainsCas = permSet.m_ContainsCas; m_ContainsNonCas = permSet.m_ContainsNonCas; m_ignoreTypeLoadFailures = permSet.m_ignoreTypeLoadFailures; if (permSet.m_permSet != null) { m_permSet = new TokenBasedSet(permSet.m_permSet); // now deep copy all permissions in set for (int i = m_permSet.GetStartingIndex(); i <= m_permSet.GetMaxUsedIndex(); i++) { Object obj = m_permSet.GetItem(i); IPermission perm = obj as IPermission; #if FEATURE_CAS_POLICY ISecurityElementFactory elem = obj as ISecurityElementFactory; #endif // FEATURE_CAS_POLICY if (perm != null) { m_permSet.SetItem(i, perm.Copy()); } #if FEATURE_CAS_POLICY else if (elem != null) { m_permSet.SetItem(i, elem.Copy()); } #endif // FEATURE_CAS_POLICY } } }
public PermissionSet(PermissionSet permSet) : this() { if (permSet == null) { Reset(); return; } m_Unrestricted = permSet.m_Unrestricted; m_CheckedForNonCas = permSet.m_CheckedForNonCas; m_ContainsCas = permSet.m_ContainsCas; m_ContainsNonCas = permSet.m_ContainsNonCas; m_ignoreTypeLoadFailures = permSet.m_ignoreTypeLoadFailures; if (permSet.m_permSet != null) { m_permSet = new TokenBasedSet(permSet.m_permSet); // now deep copy all permissions in set for (int i = m_permSet.GetStartingIndex(); i <= m_permSet.GetMaxUsedIndex(); i++) { Object obj = m_permSet.GetItem(i); IPermission perm = obj as IPermission; if (perm != null) { m_permSet.SetItem(i, perm.Copy()); } } } }