Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
335 lines (293 sloc) 24.1 KB
<Type Name="FirstMatchCodeGroup" FullName="System.Security.Policy.FirstMatchCodeGroup">
<TypeSignature Language="C#" Value="public sealed class FirstMatchCodeGroup : System.Security.Policy.CodeGroup" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi serializable sealed beforefieldinit FirstMatchCodeGroup extends System.Security.Policy.CodeGroup" />
<TypeSignature Language="DocId" Value="T:System.Security.Policy.FirstMatchCodeGroup" />
<TypeSignature Language="VB.NET" Value="Public NotInheritable Class FirstMatchCodeGroup&#xA;Inherits CodeGroup" />
<TypeSignature Language="C++ CLI" Value="public ref class FirstMatchCodeGroup sealed : System::Security::Policy::CodeGroup" />
<TypeSignature Language="F#" Value="type FirstMatchCodeGroup = class&#xA; inherit CodeGroup" />
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Security.Permissions</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.1.0</AssemblyVersion>
<AssemblyVersion>4.0.2.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Security.Policy.CodeGroup</BaseTypeName>
</Base>
<Interfaces />
<Attributes>
<Attribute FrameworkAlternate="netframework-2.0;netframework-3.0;netframework-3.5;netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;xamarinandroid-7.1;xamarinios-10.8;xamarinmac-3.0;netframework-4.8">
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
<Attribute FrameworkAlternate="netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8">
<AttributeName>System.Obsolete("This type is obsolete and will be removed in a future release of the .NET Framework. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")</AttributeName>
</Attribute>
<Attribute FrameworkAlternate="dotnet-plat-ext-2.1;netcore-2.1;netcore-2.2;netcore-2.0;dotnet-plat-ext-2.2;netcore-3.0">
<AttributeName>System.Obsolete("This type is obsolete. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")</AttributeName>
</Attribute>
<Attribute FrameworkAlternate="netframework-1.1;netframework-2.0;netframework-3.0;netframework-3.5;netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;xamarinandroid-7.1;xamarinios-10.8;xamarinmac-3.0">
<AttributeName>System.Serializable</AttributeName>
</Attribute>
<Attribute FrameworkAlternate="dotnet-plat-ext-3.0">
<AttributeName>System.Obsolete("This type is obsolete. See https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>Allows security policy to be defined by the union of the policy statement of a code group and that of the first child code group that matches. This class cannot be inherited.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Code groups are the building blocks of code access security policy. Each policy level consists of a root code group that can have child code groups. Each child code group can have their own child code groups; this behavior extends to any number of levels, forming a tree. Each code group has a membership condition that determines if a given assembly belongs to it based on the evidence for that assembly. Only code groups whose membership conditions match a given assembly and their child code groups apply policy.
Like any code group, <xref:System.Security.Policy.FirstMatchCodeGroup> only applies when its membership condition matches evidence for an assembly. If there is a match, it tests the membership condition of each child in order, stopping when the first match occurs. The result of <xref:System.Security.Policy.FirstMatchCodeGroup> is the union of the policy statement of the root code group and the policy statement of the first child group of that code group that matches.
<xref:System.Security.Policy.FirstMatchCodeGroup> is intended for programmatic use by application domain hosts to set domain policy.
## Examples
The following example shows the use of members of the <xref:System.Security.Policy.FirstMatchCodeGroup> class.
[!code-cpp[System.Security.Policy.FirstMatchCodeGroup_Evt#1](~/samples/snippets/cpp/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/CPP/members.cpp#1)]
[!code-csharp[System.Security.Policy.FirstMatchCodeGroup_Evt#1](~/samples/snippets/csharp/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/CS/members.cs#1)]
[!code-vb[System.Security.Policy.FirstMatchCodeGroup_Evt#1](~/samples/snippets/visualbasic/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/VB/Form1.vb#1)]
]]></format>
</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public FirstMatchCodeGroup (System.Security.Policy.IMembershipCondition membershipCondition, System.Security.Policy.PolicyStatement policy);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Security.Policy.IMembershipCondition membershipCondition, class System.Security.Policy.PolicyStatement policy) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Security.Policy.FirstMatchCodeGroup.#ctor(System.Security.Policy.IMembershipCondition,System.Security.Policy.PolicyStatement)" />
<MemberSignature Language="VB.NET" Value="Public Sub New (membershipCondition As IMembershipCondition, policy As PolicyStatement)" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; FirstMatchCodeGroup(System::Security::Policy::IMembershipCondition ^ membershipCondition, System::Security::Policy::PolicyStatement ^ policy);" />
<MemberSignature Language="F#" Value="new System.Security.Policy.FirstMatchCodeGroup : System.Security.Policy.IMembershipCondition * System.Security.Policy.PolicyStatement -&gt; System.Security.Policy.FirstMatchCodeGroup" Usage="new System.Security.Policy.FirstMatchCodeGroup (membershipCondition, policy)" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Security.Permissions</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.1.0</AssemblyVersion>
<AssemblyVersion>4.0.2.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="membershipCondition" Type="System.Security.Policy.IMembershipCondition" />
<Parameter Name="policy" Type="System.Security.Policy.PolicyStatement" />
</Parameters>
<Docs>
<param name="membershipCondition">A membership condition that tests evidence to determine whether this code group applies policy.</param>
<param name="policy">The policy statement for the code group in the form of a permission set and attributes to grant code that matches the membership condition.</param>
<summary>Initializes a new instance of the <see cref="T:System.Security.Policy.FirstMatchCodeGroup" /> class.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This constructor creates a basic code group and should be called from the constructors of custom code groups. Child code groups can be added using the <xref:System.Security.Policy.CodeGroup.AddChild%2A> method.
## Examples
The following code shows the use of the <xref:System.Security.Policy.FirstMatchCodeGroup.%23ctor%2A> constructor. This code example is part of a larger example provided for <xref:System.Security.Policy.FirstMatchCodeGroup> class.
[!code-cpp[System.Security.Policy.FirstMatchCodeGroup_Evt#2](~/samples/snippets/cpp/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/CPP/members.cpp#2)]
[!code-csharp[System.Security.Policy.FirstMatchCodeGroup_Evt#2](~/samples/snippets/csharp/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/CS/members.cs#2)]
[!code-vb[System.Security.Policy.FirstMatchCodeGroup_Evt#2](~/samples/snippets/visualbasic/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/VB/Form1.vb#2)]
]]></format>
</remarks>
<exception cref="T:System.ArgumentException">The type of the <paramref name="membershipCondition" /> parameter is not valid.
-or-
The type of the <paramref name="policy" /> parameter is not valid.</exception>
</Docs>
</Member>
<Member MemberName="Copy">
<MemberSignature Language="C#" Value="public override System.Security.Policy.CodeGroup Copy ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.Security.Policy.CodeGroup Copy() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Security.Policy.FirstMatchCodeGroup.Copy" />
<MemberSignature Language="VB.NET" Value="Public Overrides Function Copy () As CodeGroup" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; override System::Security::Policy::CodeGroup ^ Copy();" />
<MemberSignature Language="F#" Value="override this.Copy : unit -&gt; System.Security.Policy.CodeGroup" Usage="firstMatchCodeGroup.Copy " />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Security.Permissions</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.1.0</AssemblyVersion>
<AssemblyVersion>4.0.2.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0">
<AttributeName>System.Security.SecuritySafeCritical</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Security.Policy.CodeGroup</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Makes a deep copy of the code group.</summary>
<returns>An equivalent copy of the code group, including its membership conditions and child code groups.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This method makes a deep copy of the code group, meaning that copies of all objects it contains are made, as well.
## Examples
The following code shows the use of <xref:System.Security.Policy.FirstMatchCodeGroup.Copy%2A> method to make a deep copy of the code group. This code example is part of a larger example provided for <xref:System.Security.Policy.FirstMatchCodeGroup> class.
[!code-cpp[System.Security.Policy.FirstMatchCodeGroup_Evt#18](~/samples/snippets/cpp/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/CPP/members.cpp#18)]
[!code-csharp[System.Security.Policy.FirstMatchCodeGroup_Evt#18](~/samples/snippets/csharp/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/CS/members.cs#18)]
[!code-vb[System.Security.Policy.FirstMatchCodeGroup_Evt#18](~/samples/snippets/visualbasic/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/VB/Form1.vb#18)]
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="MergeLogic">
<MemberSignature Language="C#" Value="public override string MergeLogic { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance string MergeLogic" />
<MemberSignature Language="DocId" Value="P:System.Security.Policy.FirstMatchCodeGroup.MergeLogic" />
<MemberSignature Language="VB.NET" Value="Public Overrides ReadOnly Property MergeLogic As String" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual property System::String ^ MergeLogic { System::String ^ get(); };" />
<MemberSignature Language="F#" Value="member this.MergeLogic : string" Usage="System.Security.Policy.FirstMatchCodeGroup.MergeLogic" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Security.Permissions</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.1.0</AssemblyVersion>
<AssemblyVersion>4.0.2.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the merge logic.</summary>
<value>The string "First Match".</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Examples
The following code shows the use of the <xref:System.Security.Policy.FirstMatchCodeGroup.MergeLogic%2A> property to get the merge logic for this code group. This code example is part of a larger example provided for the <xref:System.Security.Policy.FirstMatchCodeGroup> class.
[!code-cpp[System.Security.Policy.FirstMatchCodeGroup_Evt#15](~/samples/snippets/cpp/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/CPP/members.cpp#15)]
[!code-csharp[System.Security.Policy.FirstMatchCodeGroup_Evt#15](~/samples/snippets/csharp/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/CS/members.cs#15)]
[!code-vb[System.Security.Policy.FirstMatchCodeGroup_Evt#15](~/samples/snippets/visualbasic/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/VB/Form1.vb#15)]
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Resolve">
<MemberSignature Language="C#" Value="public override System.Security.Policy.PolicyStatement Resolve (System.Security.Policy.Evidence evidence);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.Security.Policy.PolicyStatement Resolve(class System.Security.Policy.Evidence evidence) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Security.Policy.FirstMatchCodeGroup.Resolve(System.Security.Policy.Evidence)" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; override System::Security::Policy::PolicyStatement ^ Resolve(System::Security::Policy::Evidence ^ evidence);" />
<MemberSignature Language="F#" Value="override this.Resolve : System.Security.Policy.Evidence -&gt; System.Security.Policy.PolicyStatement" Usage="firstMatchCodeGroup.Resolve evidence" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Security.Permissions</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.1.0</AssemblyVersion>
<AssemblyVersion>4.0.2.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8">
<AttributeName>System.Security.SecuritySafeCritical</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Security.Policy.PolicyStatement</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="evidence" Type="System.Security.Policy.Evidence" />
</Parameters>
<Docs>
<param name="evidence">The evidence for the assembly.</param>
<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 <see langword="null" /> if the code group does not apply (the membership condition does not match the specified evidence).</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
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 first-match code groups, each child code group's membership condition is tested against the evidence in the order in which they were added; only the first match is resolved with the evidence set. If there are no matches, the policy statement of the parent first-match code group applies. The matching child code group type determines how all child groups under it are applied, depending on how the <xref:System.Security.Policy.CodeGroup.Resolve%2A> methods of these child groups work.
The .NET Framework security system uses <xref:System.Security.Policy.CodeGroup.Resolve%2A> 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.
This operation of this method is as follows:
If the membership condition does not match the specified evidence, return `null`; otherwise, set the permission set to be returned (P) equal to the code group's policy statement and continue. For each child code group, resolve the code group with the same evidence; if the result is not `null`, return that policy statement. If no child code group matched, return P (the parent's policy statement).
## Examples
The following code shows the use of the <xref:System.Security.Policy.FirstMatchCodeGroup.Resolve%2A> method to resolve policy for the code group. This code example is part of a larger example provided for the <xref:System.Security.Policy.FirstMatchCodeGroup> class.
[!code-cpp[System.Security.Policy.FirstMatchCodeGroup_Evt#19](~/samples/snippets/cpp/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/CPP/members.cpp#19)]
[!code-csharp[System.Security.Policy.FirstMatchCodeGroup_Evt#19](~/samples/snippets/csharp/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/CS/members.cs#19)]
[!code-vb[System.Security.Policy.FirstMatchCodeGroup_Evt#19](~/samples/snippets/visualbasic/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/VB/Form1.vb#19)]
]]></format>
</remarks>
<exception cref="T:System.ArgumentNullException">The <paramref name="evidence" /> parameter is <see langword="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>
</Docs>
</Member>
<Member MemberName="ResolveMatchingCodeGroups">
<MemberSignature Language="C#" Value="public override System.Security.Policy.CodeGroup ResolveMatchingCodeGroups (System.Security.Policy.Evidence evidence);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.Security.Policy.CodeGroup ResolveMatchingCodeGroups(class System.Security.Policy.Evidence evidence) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Security.Policy.FirstMatchCodeGroup.ResolveMatchingCodeGroups(System.Security.Policy.Evidence)" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; override System::Security::Policy::CodeGroup ^ ResolveMatchingCodeGroups(System::Security::Policy::Evidence ^ evidence);" />
<MemberSignature Language="F#" Value="override this.ResolveMatchingCodeGroups : System.Security.Policy.Evidence -&gt; System.Security.Policy.CodeGroup" Usage="firstMatchCodeGroup.ResolveMatchingCodeGroups evidence" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Security.Permissions</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.1.0</AssemblyVersion>
<AssemblyVersion>4.0.2.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0">
<AttributeName>System.Security.SecuritySafeCritical</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Security.Policy.CodeGroup</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="evidence" Type="System.Security.Policy.Evidence" />
</Parameters>
<Docs>
<param name="evidence">The evidence for the assembly.</param>
<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>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
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 root code group. The code group that is returned contains child code groups, which in turn can have child code groups as necessary to reflect the complete set of code groups that were matched by the evidence provided.
For first-match code groups, each child code group's membership condition is tested against the evidence in the order in which they were added; only the first match is resolved with the evidence set. If there are no matches, the policy statement of the parent first-match code group applies. The matching child code group type determines how all child groups under it are applied, depending on how the <xref:System.Security.Policy.CodeGroup.ResolveMatchingCodeGroups%2A> methods of these child groups work.
## Examples
The following code shows the use of the <xref:System.Security.Policy.FirstMatchCodeGroup.ResolveMatchingCodeGroups%2A> method to resolve matching code groups. This code example is part of a larger example provided for the <xref:System.Security.Policy.FirstMatchCodeGroup> class.
[!code-cpp[System.Security.Policy.FirstMatchCodeGroup_Evt#9](~/samples/snippets/cpp/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/CPP/members.cpp#9)]
[!code-csharp[System.Security.Policy.FirstMatchCodeGroup_Evt#9](~/samples/snippets/csharp/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/CS/members.cs#9)]
[!code-vb[System.Security.Policy.FirstMatchCodeGroup_Evt#9](~/samples/snippets/visualbasic/VS_Snippets_CLR_System/system.Security.Policy.FirstMatchCodeGroup_Evt/VB/Form1.vb#9)]
]]></format>
</remarks>
<exception cref="T:System.ArgumentNullException">The <paramref name="evidence" /> parameter is <see langword="null" />.</exception>
</Docs>
</Member>
</Members>
</Type>
You can’t perform that action at this time.