ReflectionPermission.Intersect(IPermission) メソッド


現在のアクセス許可と指定したアクセス許可の積集合となるアクセス許可を作成して返します。Creates and returns a permission that is the intersection of the current permission and the specified permission.

 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



現在のアクセス許可との共通部分のあるアクセス許可。A permission to intersect with the current permission. これは、現在のアクセス許可と同じ型であることが必要です。It must be of the same type as the current permission.


現在のアクセス許可と指定したアクセス許可の共通部分を表す新しいアクセス許可。A new permission that represents the intersection of the current permission and the specified permission. 積集合が空の場合、この新しいアクセス許可は null です。This 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.

次のコード例は、 Intersectメソッドの動作を示しています。The following code example shows the behavior of the Intersect method. この例は、 ReflectionPermissionクラスに対して提供される大規模な例の一部です。This 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 + " = " +
        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())
        Console.WriteLine("The intersection of " + memberAccessPerm.Flags.ToString + " and " + _
            restrictedMemberAccessPerm.Flags.ToString() + " is null.")
    End If

End Sub


2つのアクセス許可の積集合は、両方が共通で記述する一連の操作を記述するアクセス許可です。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.