CodeAccessPermission.Union(IPermission) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 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
.