Beispiel #1
0
        public override CodeGroup Copy()
        {
            NetCodeGroup group = new NetCodeGroup(this.MembershipCondition);

            group.Name        = this.Name;
            group.Description = this.Description;
            if (m_schemesList != null)
            {
                group.m_schemesList = (ArrayList)this.m_schemesList.Clone();
                group.m_accessList  = new ArrayList(this.m_accessList.Count);
                for (int i = 0; i < this.m_accessList.Count; ++i)
                {
                    group.m_accessList.Add(((ArrayList)this.m_accessList[i]).Clone());
                }
            }

            IEnumerator enumerator = this.Children.GetEnumerator();

            while (enumerator.MoveNext())
            {
                group.AddChild((CodeGroup)enumerator.Current);
            }


            return(group);
        }
Beispiel #2
0
        // Resolve code groups that match specific evidence.
        public override CodeGroup ResolveMatchingCodeGroups(Evidence evidence)
        {
            NetCodeGroup newGroup;
            CodeGroup    child;

            // Validate the parameter.
            if (evidence == null)
            {
                throw new ArgumentNullException("evidence");
            }

            // Check the membership condition.
            if (!MembershipCondition.Check(evidence))
            {
                return(null);
            }

            // Clone this group, except for the children.
            newGroup             = new NetCodeGroup(MembershipCondition);
            newGroup.Name        = Name;
            newGroup.Description = Description;

            // Resolve and add the children.
            foreach (CodeGroup group in Children)
            {
                child = group.ResolveMatchingCodeGroups(evidence);
                if (child != null)
                {
                    newGroup.AddChild(child);
                }
            }

            // Return the result.
            return(newGroup);
        }
Beispiel #3
0
        public override CodeGroup Copy()
        {
            NetCodeGroup copy = new NetCodeGroup(MembershipCondition);

            copy.Name            = Name;
            copy.Description     = Description;
            copy.PolicyStatement = PolicyStatement;

            foreach (CodeGroup child in Children)
            {
                copy.AddChild(child.Copy());    // deep copy
            }
            return(copy);
        }
Beispiel #4
0
        /// <summary>Makes a deep copy of the current code group.</summary>
        /// <returns>An equivalent copy of the current code group, including its membership conditions and child code groups.</returns>
        public override CodeGroup Copy()
        {
            NetCodeGroup netCodeGroup = new NetCodeGroup(base.MembershipCondition);

            netCodeGroup.Name            = base.Name;
            netCodeGroup.Description     = base.Description;
            netCodeGroup.PolicyStatement = base.PolicyStatement;
            foreach (object obj in base.Children)
            {
                CodeGroup codeGroup = (CodeGroup)obj;
                netCodeGroup.AddChild(codeGroup.Copy());
            }
            return(netCodeGroup);
        }
	// Make a copy of this code group.
	public override CodeGroup Copy()
			{
				NetCodeGroup group;
				group = new NetCodeGroup(MembershipCondition);
				group.Name = Name;
				group.Description = Description;
				IList children = Children;
				if(children != null)
				{
					foreach(CodeGroup child in children)
					{
						group.AddChild(child);
					}
				}
				return group;
			}
Beispiel #6
0
        /// <include file='doc\NetCodeGroup.uex' path='docs/doc[@for="NetCodeGroup.Copy"]/*' />
        public override CodeGroup Copy()
        {
            NetCodeGroup group = new NetCodeGroup(this.MembershipCondition);

            group.Name        = this.Name;
            group.Description = this.Description;

            IEnumerator enumerator = this.Children.GetEnumerator();

            while (enumerator.MoveNext())
            {
                group.AddChild((CodeGroup)enumerator.Current);
            }


            return(group);
        }
Beispiel #7
0
        // Make a copy of this code group.
        public override CodeGroup Copy()
        {
            NetCodeGroup group;

            group             = new NetCodeGroup(MembershipCondition);
            group.Name        = Name;
            group.Description = Description;
            IList children = Children;

            if (children != null)
            {
                foreach (CodeGroup child in children)
                {
                    group.AddChild(child);
                }
            }
            return(group);
        }
        /// <summary>Makes a deep copy of the current code group.</summary>
        /// <returns>An equivalent copy of the current code group, including its membership conditions and child code groups.</returns>
        // Token: 0x0600298C RID: 10636 RVA: 0x00099480 File Offset: 0x00097680
        public override CodeGroup Copy()
        {
            NetCodeGroup netCodeGroup = new NetCodeGroup(base.MembershipCondition);

            netCodeGroup.Name        = base.Name;
            netCodeGroup.Description = base.Description;
            if (this.m_schemesList != null)
            {
                netCodeGroup.m_schemesList = (ArrayList)this.m_schemesList.Clone();
                netCodeGroup.m_accessList  = new ArrayList(this.m_accessList.Count);
                for (int i = 0; i < this.m_accessList.Count; i++)
                {
                    netCodeGroup.m_accessList.Add(((ArrayList)this.m_accessList[i]).Clone());
                }
            }
            foreach (object obj in base.Children)
            {
                netCodeGroup.AddChild((CodeGroup)obj);
            }
            return(netCodeGroup);
        }
Beispiel #9
0
        /// <summary>生成当前代码组的深层副本。</summary>
        /// <returns>当前代码组(包括其成员条件和子代码组)的等效副本。</returns>
        public override CodeGroup Copy()
        {
            NetCodeGroup netCodeGroup = new NetCodeGroup(this.MembershipCondition);

            netCodeGroup.Name        = this.Name;
            netCodeGroup.Description = this.Description;
            if (this.m_schemesList != null)
            {
                netCodeGroup.m_schemesList = (ArrayList)this.m_schemesList.Clone();
                netCodeGroup.m_accessList  = new ArrayList(this.m_accessList.Count);
                for (int index = 0; index < this.m_accessList.Count; ++index)
                {
                    netCodeGroup.m_accessList.Add(((ArrayList)this.m_accessList[index]).Clone());
                }
            }
            foreach (CodeGroup child in (IEnumerable)this.Children)
            {
                netCodeGroup.AddChild(child);
            }
            return((CodeGroup)netCodeGroup);
        }
        public override CodeGroup Copy()
        {
            NetCodeGroup group = new NetCodeGroup( this.MembershipCondition );

            group.Name = this.Name;
            group.Description = this.Description;
            if (m_schemesList != null)
            {
                group.m_schemesList = (ArrayList)this.m_schemesList.Clone();
                group.m_accessList = new ArrayList(this.m_accessList.Count);
                for (int i = 0; i < this.m_accessList.Count; ++i)
                    group.m_accessList.Add(((ArrayList)this.m_accessList[i]).Clone());
            }

            IEnumerator enumerator = this.Children.GetEnumerator();

            while (enumerator.MoveNext())
            {
                group.AddChild( (CodeGroup)enumerator.Current );
            }


            return group;
        }
	// Resolve code groups that match specific evidence.
	public override CodeGroup ResolveMatchingCodeGroups(Evidence evidence)
			{
				NetCodeGroup newGroup;
				CodeGroup child;

				// Validate the parameter.
				if(evidence == null)
				{
					throw new ArgumentNullException("evidence");
				}

				// Check the membership condition.
				if(!MembershipCondition.Check(evidence))
				{
					return null;
				}

				// Clone this group, except for the children.
				newGroup = new NetCodeGroup(MembershipCondition);
				newGroup.Name = Name;
				newGroup.Description = Description;

				// Resolve and add the children.
				foreach(CodeGroup group in Children)
				{
					child = group.ResolveMatchingCodeGroups(evidence);
					if(child != null)
					{
						newGroup.AddChild(child);
					}
				}

				// Return the result.
				return newGroup;
			}
Beispiel #12
0
		public void CopyWithChildren () 
		{
			NetCodeGroup cgChild = new NetCodeGroup (new AllMembershipCondition ());
			NetCodeGroup cg = new NetCodeGroup (new AllMembershipCondition ());
			cg.AddChild (cgChild);
			NetCodeGroup cg2 = (NetCodeGroup) cg.Copy ();
			Assert.AreEqual (cg.Children.Count, cg2.Children.Count, "Children");
			Assert.AreEqual (cg.ToXml ().ToString (), cg2.ToXml ().ToString (), "ToXml");
		}
Beispiel #13
0
        /// <include file='doc\NetCodeGroup.uex' path='docs/doc[@for="NetCodeGroup.Copy"]/*' />
        public override CodeGroup Copy()
        {
            NetCodeGroup group = new NetCodeGroup( this.MembershipCondition );
            
            group.Name = this.Name;
            group.Description = this.Description;

            IEnumerator enumerator = this.Children.GetEnumerator();

            while (enumerator.MoveNext())
            {
                group.AddChild( (CodeGroup)enumerator.Current );
            }

            
            return group;
        }
Beispiel #14
0
		public override CodeGroup Copy ()
		{
			NetCodeGroup copy = new NetCodeGroup (MembershipCondition);
			copy.Name = Name;
			copy.Description = Description;
			copy.PolicyStatement = PolicyStatement;		

			foreach (CodeGroup child in Children) {
				copy.AddChild (child.Copy ());	// deep copy
			}
			return copy;
		}