本文整理汇总了C#中Policy.Match方法的典型用法代码示例。如果您正苦于以下问题:C# Policy.Match方法的具体用法?C# Policy.Match怎么用?C# Policy.Match使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Policy
的用法示例。
在下文中一共展示了Policy.Match方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Match
/// <summary>
/// Method called by the EvaluationEngine when the evaluation is executed without a policy document, this
/// method search in the policy repository and return the first policy that matches its target with the
/// context document specified.
/// </summary>
/// <param name="context">The evaluation context instance.</param>
/// <returns>The policy document ready to be used by the evaluation engine.</returns>
public PolicyDocument Match(EvaluationContext context)
{
if (context == null) throw new ArgumentNullException("context");
PolicyDocument polEv = null;
//Search if there is a policySet which target matches the context document
foreach (PolicyDocument policy in _policySets.Values)
{
var tempPolicy = new PolicySet(context.Engine, (PolicySetElement)policy.PolicySet);
var tempContext = new EvaluationContext(context.Engine, policy, context.ContextDocument);
// Match the policy set target with the context document
if (tempPolicy.Match(tempContext) == TargetEvaluationValue.Match)
{
if (polEv == null)
{
polEv = policy;
}
else
{
throw new EvaluationException(Properties.Resource.exc_duplicated_policy_in_repository);
}
}
}
//Search if there is a policy which target matches the context document
foreach (PolicyDocument policy in _policies.Values)
{
var tempPolicy = new Policy((PolicyElement)policy.Policy);
var tempContext = new EvaluationContext(context.Engine, policy, context.ContextDocument);
// Match the policy target with the context document
if (tempPolicy.Match(tempContext) == TargetEvaluationValue.Match)
{
if (polEv == null)
{
polEv = policy;
}
else
{
throw new EvaluationException(Properties.Resource.exc_duplicated_policy_in_repository);
}
}
}
return polEv;
}