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

IPermission

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 die Ausgabe anzuzeigen.

Hinweis

Das Codebeispiel dient zum Anzeigen des Verhaltens der Methode, nicht zum Veranschaulichen der Verwendung. Im Allgemeinen werden die Methoden der 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 ist eine Berechtigung, die alle Vorgänge darstellt, die sowohl durch die aktuelle Berechtigung als auch die angegebene Berechtigung dargestellt werden. Jede Anforderung, die beide Berechtigungen übergibt, übergibt ihre Union.

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

Gilt für