ReflectionPermission.Intersect(IPermission) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает и возвращает разрешение, представляющее собой пересечение текущего и указанного разрешений.
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
Разрешение, пересекающееся с текущим разрешением. Его тип должен совпадать с типом текущего разрешения.
Возвращаемое значение
Новое разрешение, представляющее собой пересечение текущего и указанного разрешений. Это новое разрешение равно null
, если пересечение является пустым.
Исключения
Параметр target
не равен null
и имеет тип, не совпадающий с типом текущего разрешения.
Примеры
В следующем примере кода показано поведение Intersect метода . Этот пример является частью более крупного примера, предоставленного ReflectionPermission для класса .
Примечание
Пример кода предназначен для демонстрации поведения метода, а не для демонстрации его использования. Как правило, методы классов разрешений используются инфраструктурой безопасности; Обычно они не используются в приложениях.
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
Комментарии
Пересечение двух разрешений — это разрешение, описывающее набор операций, которые они оба описывают в общем. Пересечение будет проходить только требование, которое передает оба исходных разрешения.