internal void AddChildNoDuplicates(ISecurityElementFactory child) { if (child == null) { throw new ArgumentNullException("child"); } Contract.EndContractBlock(); if (m_lChildren == null) { m_lChildren = new ArrayList(c_ChildrenTypical); m_lChildren.Add(child); } else { for (int i = 0; i < m_lChildren.Count; ++i) { if (m_lChildren[i] == child) { return; } } m_lChildren.Add(child); } }
internal TokenBasedSet SpecialUnion(TokenBasedSet other) { int maxUsedIndex; this.OnDeserializedInternal(); TokenBasedSet set = new TokenBasedSet(); if (other != null) { other.OnDeserializedInternal(); maxUsedIndex = (this.GetMaxUsedIndex() > other.GetMaxUsedIndex()) ? this.GetMaxUsedIndex() : other.GetMaxUsedIndex(); } else { maxUsedIndex = this.GetMaxUsedIndex(); } for (int i = 0; i <= maxUsedIndex; i++) { object item = this.GetItem(i); IPermission perm = item as IPermission; ISecurityElementFactory factory = item as ISecurityElementFactory; object obj3 = (other != null) ? other.GetItem(i) : null; IPermission permission2 = obj3 as IPermission; ISecurityElementFactory factory2 = obj3 as ISecurityElementFactory; if ((item != null) || (obj3 != null)) { if (item == null) { if (factory2 != null) { permission2 = PermissionSet.CreatePerm(factory2, false); } PermissionToken token = PermissionToken.GetToken(permission2); if (token == null) { throw new SerializationException(Environment.GetResourceString("Serialization_InsufficientState")); } set.SetItem(token.m_index, permission2); } else if (obj3 == null) { if (factory != null) { perm = PermissionSet.CreatePerm(factory, false); } PermissionToken token2 = PermissionToken.GetToken(perm); if (token2 == null) { throw new SerializationException(Environment.GetResourceString("Serialization_InsufficientState")); } set.SetItem(token2.m_index, perm); } } } return(set); }
internal void AddChild(ISecurityElementFactory child) { if (child == null) { throw new ArgumentNullException("child"); } if (this.m_lChildren == null) { this.m_lChildren = new ArrayList(1); } this.m_lChildren.Add((object)child); }
internal void ConvertSecurityElementFactories() { if (this.m_lChildren != null) { for (int i = 0; i < this.m_lChildren.Count; i++) { ISecurityElementFactory factory = this.m_lChildren[i] as ISecurityElementFactory; if ((factory != null) && !(this.m_lChildren[i] is SecurityElement)) { this.m_lChildren[i] = factory.CreateSecurityElement(); } } } }
internal void AddChild(ISecurityElementFactory child) { if (child == null) { throw new ArgumentNullException(nameof(child)); } if (_children == null) { _children = new ArrayList(ChildrenTypical); } _children.Add(child); }
internal void AddChild(ISecurityElementFactory child) { if (child == null) { throw new ArgumentNullException("child"); } if (m_lChildren == null) { m_lChildren = new ArrayList(c_ChildrenTypical); } m_lChildren.Add(child); }
internal void ConvertSecurityElementFactories() { if (this.m_lChildren == null) { return; } for (int index = 0; index < this.m_lChildren.Count; ++index) { ISecurityElementFactory securityElementFactory = this.m_lChildren[index] as ISecurityElementFactory; if (securityElementFactory != null && !(this.m_lChildren[index] is SecurityElement)) { this.m_lChildren[index] = (object)securityElementFactory.CreateSecurityElement(); } } }
internal void AddChild(ISecurityElementFactory child) { if (child == null) { throw new ArgumentNullException(nameof(child)); } Contract.EndContractBlock(); if (m_lChildren == null) { m_lChildren = new ArrayList(c_ChildrenTypical); } m_lChildren.Add(child); }
// Token: 0x06001BE1 RID: 7137 RVA: 0x0005FB54 File Offset: 0x0005DD54 internal void ConvertSecurityElementFactories() { if (this.m_lChildren == null) { return; } for (int i = 0; i < this.m_lChildren.Count; i++) { ISecurityElementFactory securityElementFactory = this.m_lChildren[i] as ISecurityElementFactory; if (securityElementFactory != null && !(this.m_lChildren[i] is SecurityElement)) { this.m_lChildren[i] = securityElementFactory.CreateSecurityElement(); } } }
internal void ConvertSecurityElementFactories() { if (_children == null) { return; } for (int i = 0; i < _children.Count; ++i) { ISecurityElementFactory iseFactory = _children[i] as ISecurityElementFactory; if (iseFactory != null && !(_children[i] is SecurityElement)) { _children[i] = iseFactory.CreateSecurityElement(); } } }
/// <summary> /// 转换安全元素工厂,将ISecurityElementFactories转换为SecurityElement /// </summary> internal void ConvertSecurityElementFactories() { if (m_lChildren == null)//如果 XML 元素子元素的数组为空,则返回为空 { return; } for (int i = 0; i < m_lChildren.Count; ++i) { ISecurityElementFactory iseFactory = m_lChildren[i] as ISecurityElementFactory; //将子元素转换为xml安全元素工厂实体 if (iseFactory != null && !(m_lChildren[i] is SecurityElement)) //如果元素工厂不为空,并且子元素可以转化为SecurityElement对象 { m_lChildren[i] = iseFactory.CreateSecurityElement(); //将创造的SecurityElement对象赋值给子元素数组中 } } }
// Token: 0x06001BE7 RID: 7143 RVA: 0x0005FD20 File Offset: 0x0005DF20 internal void AddChildNoDuplicates(ISecurityElementFactory child) { if (child == null) { throw new ArgumentNullException("child"); } if (this.m_lChildren == null) { this.m_lChildren = new ArrayList(1); this.m_lChildren.Add(child); return; } for (int i = 0; i < this.m_lChildren.Count; i++) { if (this.m_lChildren[i] == child) { return; } } this.m_lChildren.Add(child); }
internal void AddChildNoDuplicates(ISecurityElementFactory child) { if (child == null) { throw new ArgumentNullException("child"); } if (this.m_lChildren == null) { this.m_lChildren = new ArrayList(1); this.m_lChildren.Add((object)child); } else { for (int index = 0; index < this.m_lChildren.Count; ++index) { if (this.m_lChildren[index] == child) { return; } } this.m_lChildren.Add((object)child); } }
internal void AddChildNoDuplicates(ISecurityElementFactory child) { if (child == null) { throw new ArgumentNullException(nameof(child)); } if (_children == null) { _children = new ArrayList(ChildrenTypical); _children.Add(child); } else { for (int i = 0; i < _children.Count; ++i) { if (_children[i] == child) { return; } } _children.Add(child); } }
internal void AddChild( ISecurityElementFactory child ) { if (child == null) throw new ArgumentNullException( "child" ); if (m_lChildren == null) m_lChildren = new ArrayList( c_ChildrenTypical ); m_lChildren.Add( child ); }
internal void AddChildNoDuplicates(ISecurityElementFactory child) { if (child == null) { throw new ArgumentNullException("child"); } if (this.m_lChildren == null) { this.m_lChildren = new ArrayList(1); this.m_lChildren.Add(child); } else { for (int i = 0; i < this.m_lChildren.Count; i++) { if (this.m_lChildren[i] == child) { return; } } this.m_lChildren.Add(child); } }
internal void AddChild(ISecurityElementFactory child) { if (child == null) { throw new ArgumentNullException("child"); } if (this.m_lChildren == null) { this.m_lChildren = new ArrayList(1); } this.m_lChildren.Add(child); }
internal void AddChild( ISecurityElementFactory child ) { if (child == null) throw new ArgumentNullException( nameof(child) ); Contract.EndContractBlock(); if (m_lChildren == null) m_lChildren = new ArrayList( c_ChildrenTypical ); m_lChildren.Add( child ); }
internal void AddChildNoDuplicates( ISecurityElementFactory child ) { if (child == null) throw new ArgumentNullException( nameof(child) ); Contract.EndContractBlock(); if (m_lChildren == null) { m_lChildren = new ArrayList( c_ChildrenTypical ); m_lChildren.Add( child ); } else { for (int i = 0; i < m_lChildren.Count; ++i) { if (m_lChildren[i] == child) return; } m_lChildren.Add( child ); } }
static internal void SafeChildAdd( SecurityElement parent, ISecurityElementFactory child, bool copy ) { if (child == parent) return; if (child.GetTag().Equals( "IPermission" ) || child.GetTag().Equals( "Permission" )) { parent.AddChild( child ); } else if (parent.Tag.Equals( child.GetTag() )) { Contract.Assert( child is SecurityElement, "SecurityElement expected" ); SecurityElement elChild = (SecurityElement)child; Contract.Assert( elChild.InternalChildren != null, "Non-permission elements should have children" ); for (int i = 0; i < elChild.InternalChildren.Count; ++i) { ISecurityElementFactory current = (ISecurityElementFactory)elChild.InternalChildren[i]; Contract.Assert( !current.GetTag().Equals( parent.Tag ), "Illegal to insert a like-typed element" ); parent.AddChildNoDuplicates( current ); } } else { parent.AddChild( (ISecurityElementFactory)(copy ? child.Copy() : child) ); } }
// Used to merge two distinct TokenBasedSets (used currently only in PermissionSet Deserialization) internal TokenBasedSet SpecialUnion(TokenBasedSet other, ref bool canUnrestrictedOverride) { // This gets called from PermissionSet.OnDeserialized and it's possible that the TokenBasedSets have // not been subjected to VTS callbacks yet OnDeserializedInternal(); TokenBasedSet unionSet = new TokenBasedSet(); int maxMax; if (other != null) { other.OnDeserializedInternal(); maxMax = this.GetMaxUsedIndex() > other.GetMaxUsedIndex() ? this.GetMaxUsedIndex() : other.GetMaxUsedIndex(); } else { maxMax = this.GetMaxUsedIndex(); } for (int i = 0; i <= maxMax; ++i) { Object thisObj = this.GetItem(i); IPermission thisPerm = thisObj as IPermission; ISecurityElementFactory thisElem = thisObj as ISecurityElementFactory; Object otherObj = (other != null)?other.GetItem(i):null; IPermission otherPerm = otherObj as IPermission; ISecurityElementFactory otherElem = otherObj as ISecurityElementFactory; if (thisObj == null && otherObj == null) { continue; } if (thisObj == null) { if (otherElem != null) { otherPerm = PermissionSet.CreatePerm(otherElem, false); } PermissionToken token = PermissionToken.GetToken(otherPerm); if (token == null) { throw new SerializationException(Environment.GetResourceString("Serialization_InsufficientState")); } unionSet.SetItem(token.m_index, otherPerm); if (!CodeAccessPermission.CanUnrestrictedOverride(otherPerm)) { canUnrestrictedOverride = false; } } else if (otherObj == null) { if (thisElem != null) { thisPerm = PermissionSet.CreatePerm(thisElem, false); } PermissionToken token = PermissionToken.GetToken(thisPerm); if (token == null) { throw new SerializationException(Environment.GetResourceString("Serialization_InsufficientState")); } unionSet.SetItem(token.m_index, thisPerm); if (!CodeAccessPermission.CanUnrestrictedOverride(thisPerm)) { canUnrestrictedOverride = false; } } else { BCLDebug.Assert((thisObj == null || otherObj == null), "Permission cannot be in both TokenBasedSets"); } } return(unionSet); }
internal void AddChildNoDuplicates(ISecurityElementFactory child) { if (child == null) throw new ArgumentNullException(nameof(child)); if (_children == null) { _children = new ArrayList(ChildrenTypical); _children.Add(child); } else { for (int i = 0; i < _children.Count; ++i) { if (_children[i] == child) return; } _children.Add(child); } }
internal void AddChild(ISecurityElementFactory child) { if (child == null) throw new ArgumentNullException(nameof(child)); if (_children == null) _children = new ArrayList(ChildrenTypical); _children.Add(child); }
internal static void SafeChildAdd(SecurityElement parent, ISecurityElementFactory child, bool copy) { if (child != parent) { if (child.GetTag().Equals("IPermission") || child.GetTag().Equals("Permission")) { parent.AddChild(child); } else if (parent.Tag.Equals(child.GetTag())) { SecurityElement element = (SecurityElement) child; for (int i = 0; i < element.InternalChildren.Count; i++) { ISecurityElementFactory factory = (ISecurityElementFactory) element.InternalChildren[i]; parent.AddChildNoDuplicates(factory); } } else { parent.AddChild(copy ? ((ISecurityElementFactory) child.Copy()) : child); } } }