Freigeben über


StrongNameIdentityPermission.Union(IPermission) Methode

Definition

Erstellt eine Berechtigung als Kombination der aktuellen und der angegebenen Berechtigung.

public:
 override System::Security::IPermission ^ Union(System::Security::IPermission ^ target);
public override System.Security.IPermission Union (System.Security.IPermission target);
override this.Union : System.Security.IPermission -> System.Security.IPermission
Public Overrides Function Union (target As IPermission) As IPermission

Parameter

target
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.

Ausnahmen

Der target-Parameter ist nicht null und weist nicht denselben Typ wie die aktuelle Berechtigung auf.

- oder -

Die beiden Berechtigungen sind nicht gleich, und eine Berechtigung ist eine Teilmenge der jeweils anderen.

Beispiele

Das folgende Codebeispiel zeigt die Ergebnisse der Verwendung der Union -Methode, nicht die Verwendung der -Methode. Dieses Beispiel ist Teil eines größeren Beispiels, das für die StrongNameIdentityPermission -Klasse bereitgestellt wird. Die beste Verwendung für dieses Beispiel besteht darin, das gesamte Beispiel zu erstellen und auszuführen und dessen Ausgabe anzuzeigen.

Hinweis

Das Codebeispiel dient dazu, das Verhalten der -Methode zu veranschaulichen und nicht deren Verwendung zu veranschaulichen. Im Allgemeinen werden die Methoden von Berechtigungsklassen von der Sicherheitsinfrastruktur verwendet. sie werden in der Regel nicht in Anwendungen verwendet.

// Union creates a new permission that is the union of the current permission and the specified permission.
bool UnionDemo()
{
    bool returnValue = true;
    StrongNameIdentityPermission^ snIdPerm1;
    StrongNameIdentityPermission^ snIdPerm2;
    IPermission^ snIdPerm3;
    snIdPerm1 = gcnew StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.*", gcnew Version("1.0.0.0"));
    snIdPerm2 = gcnew StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.MyFile", gcnew Version("1.0.0.0"));
    snIdPerm3 = dynamic_cast<StrongNameIdentityPermission^>(snIdPerm1->Union( snIdPerm2 ));
    snIdPerm3 = snIdPerm1->Union( snIdPerm2 );

    try
    {
        Console::WriteLine("The union of MyCompany.MyDepartment.*" +
            "and MyCompany.MyDepartment.MyFile is " +
            (dynamic_cast<StrongNameIdentityPermission^>(snIdPerm3))->Name); 
    }
    catch (Exception^ e)
    {
        Console::WriteLine("An expected exception was thrown: " + e->Message);
    }


    return returnValue;
}
// Union creates a new permission that is the union of the current permission and the specified permission.
private bool UnionDemo()
{

    bool returnValue = true;

    StrongNameIdentityPermission snIdPerm1, snIdPerm2;
    IPermission snIdPerm3;

    snIdPerm1 = new StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.*", new Version("1.0.0.0"));
    snIdPerm2 = new StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.MyFile", new Version("1.0.0.0"));

    snIdPerm3 = (StrongNameIdentityPermission)snIdPerm1.Union(snIdPerm2);

    try
    {
        Console.WriteLine("The union of MyCompany.MyDepartment.*" +
        "and MyCompany.MyDepartment.MyFile is " +
        ((StrongNameIdentityPermission)snIdPerm3).Name.ToString());
    }
    catch (Exception e)
    {
        Console.WriteLine("An expected exception was thrown: " + e.Message);
    }

    return returnValue;
}
' Union creates a new permission that is the union of the current permission and the specified permission.
Private Function UnionDemo() As Boolean 
    
    Dim returnValue As Boolean = True
    
    Dim snIdPerm1, snIdPerm2 As StrongNameIdentityPermission
    Dim snIdPerm3 As IPermission
    
    snIdPerm1 = New StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.*", New Version("1.0.0.0"))
    snIdPerm2 = New StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.MyFile", New Version("1.0.0.0"))
    
    snIdPerm3 = CType(snIdPerm1.Union(snIdPerm2), StrongNameIdentityPermission)
    
    Try
        Console.WriteLine("The union of MyCompany.MyDepartment.*" + "and MyCompany.MyDepartment.MyFile is " + CType(snIdPerm3, StrongNameIdentityPermission).Name.ToString())
    Catch e As Exception
        Console.WriteLine("An expected exception was thrown: " + e.Message)
    End Try
    
    
    Return returnValue

End Function 'UnionDemo

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.

Die Vereinigung einer Berechtigung und null ist die Berechtigung, die nicht nullist. Die Vereinigung einer Berechtigung und einer Teilmenge dieser Berechtigung ist die Berechtigung, die die andere enthält. Jede andere Kombination führt dazu, dass eine ArgumentException Ausnahme ausgelöst wird.

Gilt für: