Bagikan melalui


StrongNameIdentityPermission.Union(IPermission) Metode

Definisi

Membuat izin yang merupakan gabungan izin saat ini dan izin yang ditentukan.

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

Izin untuk digabungkan dengan izin saat ini. Jenisnya harus sama dengan izin saat ini.

Mengembalikan

Izin baru yang mewakili gabungan izin saat ini dan izin yang ditentukan.

Pengecualian

Parameter target bukan null dan bukan tipe yang sama dengan izin saat ini.

-atau-

Dua izin tidak sama dan satu adalah subset dari yang lain.

Contoh

Contoh kode berikut menunjukkan hasil penggunaan Union metode , bukan cara menggunakan metode . Contoh ini adalah bagian dari contoh yang lebih besar yang disediakan untuk StrongNameIdentityPermission kelas . Penggunaan terbaik untuk contoh ini adalah membangun dan menjalankan seluruh contoh, dan melihat outputnya.

Catatan

Contoh kode dimaksudkan untuk menunjukkan perilaku metode , bukan untuk menunjukkan penggunaannya. Secara umum, metode kelas izin digunakan oleh infrastruktur keamanan; biasanya tidak digunakan dalam aplikasi.

// 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

Keterangan

Hasil panggilan ke Union adalah izin yang mewakili semua operasi yang diwakili oleh izin saat ini dan izin yang ditentukan. Setiap permintaan yang melewati izin melewati serikat mereka.

Persatuan izin dan null merupakan izin yang bukan null. Persatuan izin dan subset izin tersebut adalah izin yang berisi izin lainnya. Kombinasi lainnya menghasilkan pengecualian yang ArgumentException dilemparkan.

Berlaku untuk