Прочитать на английском

Поделиться через


CodeAccessPermission.Union(IPermission) Метод

Определение

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

public virtual System.Security.IPermission Union(System.Security.IPermission other);

Параметры

other
IPermission

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

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

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

Реализации

Исключения

Параметр other не является null. Метод поддерживается на этом уровне только при передаче null.

Примеры

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

        public override IPermission Union(IPermission target)
        {
#if(debug)
            Console.WriteLine ("************* Entering Union *********************");
#endif
            if (target == null)
            {
                return this;
            }
#if(debug)
            Console.WriteLine ("This is = " + (( NameIdPermission)this).Name);
            Console.WriteLine ("Target is " + (( NameIdPermission)target).m_Name);
#endif
            if (!VerifyType(target))
            {
                throw new ArgumentException (String.Format ("Argument_WrongType", this.GetType ().FullName));
            }

             NameIdPermission operand = ( NameIdPermission)target;

            if (operand.IsSubsetOf (this)) return this.Copy ();
            else if (this.IsSubsetOf (operand)) return operand.Copy ();
            else
                return null;
        }

Комментарии

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

Примечания для тех, кто наследует этот метод

Этот метод необходимо переопределить в производном классе. Необходимо вернуть копию разрешения, если значение other параметра равно null.

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

Продукт Версии
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10