System.Security.Policy.CodeGroup.Resolve C# (CSharp) Method

Resolve() public abstract method

public abstract Resolve ( Evidence evidence ) : PolicyStatement
evidence Evidence
return PolicyStatement
        public abstract PolicyStatement Resolve(Evidence evidence);
        public abstract CodeGroup ResolveMatchingCodeGroups(Evidence evidence);

Same methods

CodeGroup::Resolve ( System evidence ) : System.Security.Policy.PolicyStatement

Usage Example

        /// <summary>Resolves policy for the code group and its descendants for a set of evidence.</summary>
        /// <returns>A policy statement consisting of the permissions granted by the code group with optional attributes, or null if the code group does not apply (the membership condition does not match the specified evidence).</returns>
        /// <param name="evidence">The evidence for the assembly. </param>
        /// <exception cref="T:System.ArgumentNullException">The <paramref name="evidence" /> parameter is null. </exception>
        /// <exception cref="T:System.Security.Policy.PolicyException">More than one code group (including the parent code group and any child code groups) is marked <see cref="F:System.Security.Policy.PolicyStatementAttribute.Exclusive" />. </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 PolicyStatement Resolve(Evidence evidence)
        {
            if (evidence == null)
            {
                throw new ArgumentNullException("evidence");
            }
            if (!base.MembershipCondition.Check(evidence))
            {
                return(null);
            }
            PermissionSet permissionSet = base.PolicyStatement.PermissionSet.Copy();

            if (base.Children.Count > 0)
            {
                foreach (object obj in base.Children)
                {
                    CodeGroup       codeGroup       = (CodeGroup)obj;
                    PolicyStatement policyStatement = codeGroup.Resolve(evidence);
                    if (policyStatement != null)
                    {
                        permissionSet = permissionSet.Union(policyStatement.PermissionSet);
                    }
                }
            }
            PolicyStatement policyStatement2 = base.PolicyStatement.Copy();

            policyStatement2.PermissionSet = permissionSet;
            return(policyStatement2);
        }
All Usage Examples Of System.Security.Policy.CodeGroup::Resolve