CodeAccessPermission.Union(IPermission) CodeAccessPermission.Union(IPermission) CodeAccessPermission.Union(IPermission) CodeAccessPermission.Union(IPermission) Method

Definizione

Quando sottoposto a override in una classe derivata, crea un'autorizzazione che rappresenta l'unione dell'autorizzazione corrente e di quella specificata.When overridden in a derived class, creates a permission that is the union of the current permission and the specified permission.

public:
 virtual System::Security::IPermission ^ Union(System::Security::IPermission ^ other);
public virtual System.Security.IPermission Union (System.Security.IPermission other);
abstract member Union : System.Security.IPermission -> System.Security.IPermission
override this.Union : System.Security.IPermission -> System.Security.IPermission
Public Overridable Function Union (other As IPermission) As IPermission

Parametri

other
IPermission IPermission IPermission IPermission

Autorizzazione da combinare con quella corrente.A permission to combine with the current permission. Deve essere dello stesso tipo dell'autorizzazione corrente.It must be of the same type as the current permission.

Restituisce

Nuova autorizzazione che rappresenta l'unione dell'autorizzazione corrente e di quella specificata.A new permission that represents the union of the current permission and the specified permission.

Implementazioni

Eccezioni

Il parametro other non è null.The other parameter is not null. Questo metodo è supportato a questo livello solo se passato come null.This method is only supported at this level when passed null.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato Union un override del metodo.The following code example shows an override of the Union method. Questo esempio di codice fa parte di un esempio più ampio fornito CodeAccessPermission per la classe.This code example is part of a larger example provided for the CodeAccessPermission class.

public:
   virtual IPermission^ Union( IPermission^ target ) override
   {
#if ( debug ) 
      Console::WriteLine( "************* Entering Union *********************" );
#endif 

      if ( target == nullptr )
      {
         return this;
      }

#if ( debug ) 
      Console::WriteLine( "This is = {0}", ((NameIdPermission)this).Name );
      Console::WriteLine( "Target is {0}", ((NameIdPermission)target).m_Name );
#endif 

      if (  !VerifyType( target ) )
      {
         throw gcnew ArgumentException( String::Format( "Argument_WrongType", this->GetType()->FullName ) );
      }

      NameIdPermission^ operand = dynamic_cast<NameIdPermission^>(target);

      if ( operand->IsSubsetOf( this ) )
      {
         return this->Copy();
      }
      else if ( this->IsSubsetOf( operand ) )
      {
         return operand->Copy();
      }
      else
      {
         return nullptr;
      }
   }
        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;
        }
        Public Overrides Function Union(ByVal target As IPermission) As IPermission
#If (Debug) Then

            Console.WriteLine("************* Entering Union *********************")
#End If
            If target Is Nothing Then
                Return Me
            End If
#If (Debug) Then
            Console.WriteLine(("This is = " + CType(Me, NameIdPermission).Name))
            Console.WriteLine(("Target is " + CType(target, NameIdPermission).m_name))
#End If
            If Not VerifyType(target) Then
                Throw New ArgumentException(String.Format("Argument_WrongType", Me.GetType().FullName))
            End If

            Dim operand As NameIdPermission = CType(target, NameIdPermission)

            If operand.IsSubsetOf(Me) Then
                Return Me.Copy()
            ElseIf Me.IsSubsetOf(operand) Then
                Return operand.Copy()
            Else
                Return Nothing
            End If
        End Function 'Union

Commenti

Il risultato di una chiamata a Union è un'autorizzazione che rappresenta tutte le operazioni rappresentate sia dall'autorizzazione corrente che dall'autorizzazione specificata.The result of a call to Union is a permission that represents all the operations represented by both the current permission and the specified permission. Qualsiasi richiesta che supera le autorizzazioni passa l'Unione.Any demand that passes either permission passes their union.

Note per gli eredi

È necessario eseguire l'override di questo metodo in una classe derivata.You must override this method in a derived class. Se il valore del other parametro è null, è necessario restituire una copia dell'autorizzazione.You should return a copy of the permission if the value of the other parameter is null.

Si applica a