ResolveMatchingCodeGroups() public abstract method

public abstract ResolveMatchingCodeGroups ( Evidence evidence ) : CodeGroup
evidence Evidence
return CodeGroup
        /// <summary>Resolves matching code groups.</summary>
        /// <returns>A <see cref="T:System.Security.Policy.CodeGroup" />.</returns>
        /// <param name="evidence">The evidence for the assembly. </param>
        /// <exception cref="T:System.ArgumentNullException">The <paramref name="evidence" /> parameter is null. </exception>
        /// <PermissionSet>
        ///   <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" />
        /// </PermissionSet>
        public override CodeGroup ResolveMatchingCodeGroups(Evidence evidence)
        {
            if (evidence == null)
            {
                throw new ArgumentNullException("evidence");
            }
            if (!base.MembershipCondition.Check(evidence))
            {
                return(null);
            }
            CodeGroup codeGroup = this.Copy(false);

            if (base.Children.Count > 0)
            {
                foreach (object obj in base.Children)
                {
                    CodeGroup codeGroup2 = (CodeGroup)obj;
                    CodeGroup codeGroup3 = codeGroup2.ResolveMatchingCodeGroups(evidence);
                    if (codeGroup3 != null)
                    {
                        codeGroup.AddChild(codeGroup3);
                    }
                }
            }
            return(codeGroup);
        }
        public CodeGroup ResolveMatchingCodeGroups(Evidence evidence)
        {
            if (evidence == null)
            {
                throw new ArgumentNullException("evidence");
            }

            CodeGroup cg = root_code_group.ResolveMatchingCodeGroups(evidence);

            return((cg != null) ? cg : null);
        }
        /// <summary>Resolves matching code groups.</summary>
        /// <returns>A <see cref="T:System.Security.Policy.CodeGroup" /> that is the root of the tree of matching code groups.</returns>
        /// <param name="evidence">The evidence for the assembly. </param>
        /// <exception cref="T:System.ArgumentNullException">The <paramref name="evidence" /> parameter is null. </exception>
        public override CodeGroup ResolveMatchingCodeGroups(Evidence evidence)
        {
            if (evidence == null)
            {
                throw new ArgumentNullException("evidence");
            }
            if (!base.MembershipCondition.Check(evidence))
            {
                return(null);
            }
            FileCodeGroup fileCodeGroup = new FileCodeGroup(base.MembershipCondition, this.m_access);

            foreach (object obj in base.Children)
            {
                CodeGroup codeGroup  = (CodeGroup)obj;
                CodeGroup codeGroup2 = codeGroup.ResolveMatchingCodeGroups(evidence);
                if (codeGroup2 != null)
                {
                    fileCodeGroup.AddChild(codeGroup2);
                }
            }
            return(fileCodeGroup);
        }