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).
Given evidence for an assembly to be loaded, this method evaluates the code group by first checking the membership condition against the specified evidence. If there is a match, this method returns a policy statement for the code group, including evaluation of child code groups.
For union code groups, all child code groups whose membership condition match the evidence are also resolved, and all resulting policy statements form a union with the policy statement of the parent union code group. Each child code group type determines how its child groups are applied, depending on how their respective UnionCodeGroup.Resolve(Evidence) methods work.
The .NET Framework security system uses UnionCodeGroup.Resolve(Evidence) on the policy levels to determine which permissions to grant to loaded code from the resulting policy statements and the code request on the assembly.
If the membership condition does not match the specified evidence, this method returns null; otherwise, it sets the permission set to be returned (P) equal to the code group's policy statement, and then continues. For each child code group, the method resolves the code group with the same evidence; if the result is not null, it sets P equal to the union of P and the child code group's policy statement. It then returns P, which is now the union of the current code group's policy statement and all child group policy statements.