FirstMatchCodeGroup.Resolve(Evidence) 方法

定义

对一组证据解析代码组及其子代的策略。

public:
 override System::Security::Policy::PolicyStatement ^ Resolve(System::Security::Policy::Evidence ^ evidence);
public override System.Security.Policy.PolicyStatement Resolve (System.Security.Policy.Evidence evidence);
override this.Resolve : System.Security.Policy.Evidence -> System.Security.Policy.PolicyStatement
Public Overrides Function Resolve (evidence As Evidence) As PolicyStatement

参数

evidence
Evidence

程序集的证据。

返回

PolicyStatement

由具有可选特性的代码组授予的权限组成的策略声明;或者,如果代码组不适用(成员条件与指定的证据不匹配),则为 null

例外

evidence 参数为 null

将不止一个代码组(包括父代码组和任何子代码组)标记为 Exclusive

示例

以下代码演示了如何使用 Resolve 该方法解析代码组的策略。 此代码示例是为类提供的大型示例的 FirstMatchCodeGroup 一部分。

Assembly^ assembly = Members::typeid->Assembly;
Evidence^ executingEvidence = assembly->Evidence;

PolicyStatement^ policy = codeGroup->Resolve( executingEvidence );
Assembly assembly = typeof(Members).Assembly;
Evidence executingEvidence = assembly.Evidence;

PolicyStatement policy = codeGroup.Resolve(executingEvidence);
Dim executingAssembly As [Assembly] = Me.GetType().Assembly
Dim executingEvidence As Evidence
executingEvidence = executingAssembly.Evidence

Dim policy As PolicyStatement = codeGroup.Resolve(executingEvidence)

注解

给定要加载程序集的证据,此方法首先根据指定的证据检查成员身份条件来评估代码组。 如果存在匹配项,此方法返回代码组的策略语句,包括子代码组的评估。

对于第一匹配代码组,每个子代码组的成员身份条件都会根据添加顺序对证据进行测试;仅使用证据集解析第一个匹配项。 如果没有匹配项,则应用父第一匹配代码组的策略语句。 匹配的子代码组类型根据这些子组的方法来确定应用其下的所有子组的方式 Resolve

.NET Framework安全系统使用Resolve策略级别来确定从生成的策略语句和程序集上的代码请求授予加载代码的权限。

此方法的此操作如下所示:

如果成员资格条件与指定的证据不匹配,则返回 null;否则,请将权限集设置为返回 (P) 等于代码组的策略语句并继续。 对于每个子代码组,请解析具有相同证据的代码组;如果结果不是 null,则返回该策略语句。 如果未匹配子代码组,则返回 P (父策略语句) 。

适用于