EnvironmentPermission.Intersect 方法

创建并返回一个权限,该权限是当前权限和指定权限的交集。

**命名空间:**System.Security.Permissions
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
Public Overrides Function Intersect ( _
    target As IPermission _
) As IPermission
用法
Dim instance As EnvironmentPermission
Dim target As IPermission
Dim returnValue As IPermission

returnValue = instance.Intersect(target)
public override IPermission Intersect (
    IPermission target
)
public:
virtual IPermission^ Intersect (
    IPermission^ target
) override
public IPermission Intersect (
    IPermission target
)
public override function Intersect (
    target : IPermission
) : IPermission

参数

  • target
    要与当前权限相交的权限。它必须与当前权限属于同一类型。

返回值

一个新权限,它表示当前权限与指定权限的交集。如果交集为空,则此新权限为 空引用(在 Visual Basic 中为 Nothing)。

异常

异常类型 条件

ArgumentException

target 参数不是 空引用(在 Visual Basic 中为 Nothing),而且与当前权限不是同一类型。

备注

两个权限的交集是对它们共同描述的状态进行描述的权限。只有同时通过两个原始权限的请求才能通过该交集。

示例

下面的代码示例演示 Intersect 方法的用法。此代码示例摘自一个为 EnvironmentPermission 类提供的更大的示例。

Private Function IntersectDemo() As Boolean 
    
    Dim envIdPerm3 As IPermission
    Dim returnValue As Boolean = True
    Dim envPerm1 As New EnvironmentPermission(EnvironmentPermissionAccess.Read, "windir")
    Dim envPerm2 As New EnvironmentPermission(EnvironmentPermissionAccess.Read, "TEMP")
    Try
        envIdPerm3 = CType(envPerm1.Intersect(envPerm2), EnvironmentPermission)
        If Not (envIdPerm3 Is Nothing) AndAlso Not (CType(envIdPerm3, _
        EnvironmentPermission).GetPathList(EnvironmentPermissionAccess.Read) Is Nothing) Then
            Console.WriteLine("The intersection of " + "windir" + " and " + "TEMP" + _
            " = " + CType(envIdPerm3, EnvironmentPermission).GetPathList(EnvironmentPermissionAccess.Read).ToString())
        Else
            Console.WriteLine("The intersection of " + "windir" + " and " + "TEMP" + " is null.")
        End If
    Catch e As Exception
        Console.WriteLine("An exception was thrown for intersection : " + e.Message)
        returnValue = False
    End Try
    
    Return returnValue

End Function 'IntersectDemo
 
private bool IntersectDemo()
{

    IPermission envIdPerm3;
    bool returnValue = true;
    EnvironmentPermission envPerm1 = new EnvironmentPermission(EnvironmentPermissionAccess.Read, "windir");
    EnvironmentPermission envPerm2 = new EnvironmentPermission(EnvironmentPermissionAccess.Read, "TEMP");
    try
    {
        envIdPerm3 = (EnvironmentPermission)envPerm1.Intersect(envPerm2);
        if (envIdPerm3 != null && ((EnvironmentPermission)envIdPerm3).GetPathList(EnvironmentPermissionAccess.Read) != null)
        {
            Console.WriteLine("The intersection of " + "windir" + " and " + "TEMP" +                    " = " + ((EnvironmentPermission)envIdPerm3).GetPathList(EnvironmentPermissionAccess.Read).ToString());
        }
        else
        {
            Console.WriteLine("The intersection of " + "windir" + " and "
                + "TEMP" + " is null.");
        }
    }
    catch (Exception e)
    {
        Console.WriteLine("An exception was thrown for intersection : " + e);
        returnValue = false;
    }

    return returnValue;

}

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

EnvironmentPermission 类
EnvironmentPermission 成员
System.Security.Permissions 命名空间