ReflectionPermission.Union(IPermission) Метод

Определение

Создает разрешение, представляющее собой объединение текущего и указанного разрешений.

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

Параметры

other
IPermission

Разрешение, которое требуется объединить с текущим разрешением. Его тип должен совпадать с типом текущего разрешения.

Возвращаемое значение

IPermission

Новое разрешение, представляющее собой объединение текущего и указанного разрешений.

Исключения

Параметр other не равен null и имеет тип, не совпадающий с типом текущего разрешения.

Примеры

В следующем примере кода показано поведение Union метода. Этот пример является частью более крупного примера, предоставленного ReflectionPermission для класса.

Примечание

Пример кода предназначен для отображения поведения метода, а не для демонстрации его использования. Как правило, методы классов разрешений используются инфраструктурой безопасности; Они обычно не используются в приложениях.

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

End Sub

Комментарии

Результатом вызова Union является разрешение, представляющее все операции, представленные как текущим разрешением, так и указанным разрешением. Любое требование, которое передает любое разрешение, передает их объединение.

Применяется к