CodeAccessPermission.Union-Methode
Erstellt beim Überschreiben in einer abgeleiteten Klasse eine Berechtigung, bei der es sich um die Union der aktuellen und der angegebenen Berechtigung handelt.
Namespace: System.Security
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Overridable Function Union ( _
other As IPermission _
) As IPermission
'Usage
Dim instance As CodeAccessPermission
Dim other As IPermission
Dim returnValue As IPermission
returnValue = instance.Union(other)
public virtual IPermission Union (
IPermission other
)
public:
virtual IPermission^ Union (
IPermission^ other
)
public IPermission Union (
IPermission other
)
public function Union (
other : IPermission
) : IPermission
Parameter
- other
Eine Berechtigung, die mit der aktuellen Berechtigung kombiniert werden soll. Diese muss von demselben Typ wie die aktuelle Berechtigung sein.
Rückgabewert
Eine neue Berechtigung, die die Gesamtmenge der aktuellen und der angegebenen Berechtigung darstellt.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
Der other-Parameter ist nicht NULL (Nothing in Visual Basic). Die Methode wird auf dieser Ebene nur bei der Übergabe von NULL (Nothing in Visual Basic) unterstützt. |
Hinweise
Das Ergebnis eines Aufrufs von Union ist eine Berechtigung, die alle Operationen darstellt, die sowohl durch die aktuelle als auch die angegebene Berechtigung dargestellt werden. Anforderungen, die eine der beiden Berechtigungen erfolgreich durchlaufen, durchlaufen auch deren Gesamtmenge erfolgreich.
Hinweise für Erben Sie müssen diese Methode in einer abgeleiteten Klasse überschreiben. Sie sollten eine Kopie der Berechtigung zurückgeben, wenn der Wert des other-Parameters NULL (Nothing in Visual Basic) ist.
Beispiel
Im folgenden Codebeispiel wird eine Überschreibung der Union-Methode veranschaulicht. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die CodeAccessPermission-Klasse.
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
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:
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;
}
}
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
CodeAccessPermission-Klasse
CodeAccessPermission-Member
System.Security-Namespace