CodeAccessPermission.Union(IPermission) Methode

Definition

Erstellt beim Überschreiben in einer abgeleiteten Klasse eine Berechtigung als Kombination der aktuellen und der angegebenen Berechtigung.

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

Parameter

other
IPermission

Eine Berechtigung, die mit der aktuellen Berechtigung kombiniert werden soll. Sie muss denselben Typ aufweisen wie die aktuelle Berechtigung.

Gibt zurück

Eine neue Berechtigung, die die Kombination der aktuellen und der angegebenen Berechtigung darstellt.

Implementiert

Ausnahmen

Der other-Parameter ist nicht null. Diese Methode wird auf dieser Ebene nur unterstützt, wenn null übergeben wird.

Beispiele

Das folgende Codebeispiel zeigt eine Außerkraftsetzung der Union -Methode. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die CodeAccessPermission-Klasse bereitgestellt wird.

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

Hinweise

Das Ergebnis eines Aufrufs Union von ist eine Berechtigung, die alle Vorgänge darstellt, die sowohl durch die aktuelle Berechtigung als auch die angegebene Berechtigung dargestellt werden. Jede Anforderung, die eine der beiden Berechtigungen übergibt, übergibt ihre Union.

Hinweise für Vererber

Sie müssen diese Methode in einer abgeleiteten Klasse überschreiben. Sie sollten eine Kopie der Berechtigung zurückgeben, wenn der Wert des other Parameters ist null.

Gilt für: