ReflectionPermission.Intersect(IPermission) 方法

定义

创建并返回一个权限,该权限是当前权限与指定权限的交集。Creates and returns a permission that is the intersection of the current permission and the specified permission.

public:
 override System::Security::IPermission ^ Intersect(System::Security::IPermission ^ target);
public override System.Security.IPermission Intersect (System.Security.IPermission target);
override this.Intersect : System.Security.IPermission -> System.Security.IPermission
Public Overrides Function Intersect (target As IPermission) As IPermission

参数

target
IPermission

要与当前权限相交的权限。A permission to intersect with the current permission. 它必须与当前权限属于同一类型。It must be of the same type as the current permission.

返回

IPermission

表示当前权限和指定权限的交集的一个新权限。A new permission that represents the intersection of the current permission and the specified permission. 如果交集为空,则此新权限为 nullThis new permission is null if the intersection is empty.

例外

target 参数不为 null,并且与当前权限不属于同一类型。The target parameter is not null and is not of the same type as the current permission.

示例

下面的代码示例演示方法的行为 IntersectThe following code example shows the behavior of the Intersect method. 此示例是为类提供的更大示例的一部分 ReflectionPermissionThis example is part of a larger example provided for the ReflectionPermission class.

备注

此代码示例旨在显示方法的行为,而不是演示方法的用法。The code example is intended to show the behavior of the method, not to demonstrate its use. 通常,权限类的方法由安全基础结构使用;它们通常不在应用程序中使用。In general, the methods of permission classes are used by the security infrastructure; they are not typically used in applications.

private static void IntersectDemo()
{
    ReflectionPermission memberAccessPerm = new ReflectionPermission(ReflectionPermissionFlag.MemberAccess);
    ReflectionPermission restrictedMemberAccessPerm = new ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess);
    ReflectionPermission reflectionPerm3 = (ReflectionPermission)memberAccessPerm.Intersect(restrictedMemberAccessPerm);
    if (reflectionPerm3 != null)
    {
        Console.WriteLine("The intersection of " + memberAccessPerm.Flags +
            " and " + restrictedMemberAccessPerm.Flags + " = " +
            ((ReflectionPermission)reflectionPerm3).Flags.ToString());
    }
    else
    {
        Console.WriteLine("The intersection of " + memberAccessPerm.Flags + " and " +
            restrictedMemberAccessPerm.Flags + " is null.");
    }
}
Private Shared Sub IntersectDemo()
    Dim memberAccessPerm As New ReflectionPermission(ReflectionPermissionFlag.MemberAccess)
    Dim restrictedMemberAccessPerm As New ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess)
    Dim reflectionPerm3 As ReflectionPermission = CType(memberAccessPerm.Intersect(restrictedMemberAccessPerm), ReflectionPermission)
    If Not (reflectionPerm3 Is Nothing) Then
        Console.WriteLine("The intersection of " + memberAccessPerm.Flags.ToString() + _
        " and " + restrictedMemberAccessPerm.Flags.ToString() + " = " + _
        CType(reflectionPerm3, ReflectionPermission).Flags.ToString())
    Else
        Console.WriteLine("The intersection of " + memberAccessPerm.Flags.ToString + " and " + _
            restrictedMemberAccessPerm.Flags.ToString() + " is null.")
    End If

End Sub


注解

两个权限的交集是描述它们共同描述的一组操作的权限。The intersection of two permissions is a permission that describes the set of operations they both describe in common. 只有同时传递两个原始权限的请求才会传递交集。Only a demand that passes both original permissions will pass the intersection.

适用于