Bagikan melalui


RuntimeCompatibilityAttribute Kelas

Definisi

Menentukan apakah akan membungkus pengecualian yang tidak berasal dari Exception kelas dengan RuntimeWrappedException objek . Kelas ini tidak dapat diwariskan.

public ref class RuntimeCompatibilityAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)]
public sealed class RuntimeCompatibilityAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)]
[System.Serializable]
public sealed class RuntimeCompatibilityAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)>]
type RuntimeCompatibilityAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)>]
[<System.Serializable>]
type RuntimeCompatibilityAttribute = class
    inherit Attribute
Public NotInheritable Class RuntimeCompatibilityAttribute
Inherits Attribute
Warisan
RuntimeCompatibilityAttribute
Atribut

Contoh

Contoh kode berikut menunjukkan cara menerapkan RuntimeCompatibilityAttribute kelas ke rakitan yang melempar String objek sebagai pengecualian di C++ dan menangkapnya menggunakan RuntimeWrappedException objek .

using namespace System;
using namespace System::Runtime::CompilerServices;

[assembly:RuntimeCompatibilityAttribute(WrapNonExceptionThrows = true)]; 

void run()
{
    try
    {
        throw gcnew String("This is a string");

    }
    catch(RuntimeWrappedException^ e)
    {
        Console::WriteLine("RuntimeWrappedException caught!");
    }
}

int main()
{
    run();

    return 0;
}

Keterangan

Beberapa bahasa, seperti C++, memungkinkan Anda melemparkan pengecualian dari jenis apa pun. Bahasa lain, seperti Microsoft C# dan Visual Basic, mengharuskan setiap pengecualian yang dilemparkan berasal dari Exception kelas . Untuk mempertahankan kompatibilitas antar bahasa, runtime bahasa umum (CLR) membungkus objek yang tidak berasal dari Exception dalam RuntimeWrappedException objek.

Anda dapat menggunakan RuntimeCompatibilityAttribute kelas untuk menentukan apakah pengecualian akan muncul dibungkus di dalam blok tangkapan dan filter pengecualian untuk perakitan. Banyak pengkompilasi bahasa, termasuk pengkompilasi Microsoft C# dan Visual Basic, menerapkan atribut ini secara default untuk menentukan perilaku pembungkusan.

Perhatikan bahwa runtime masih membungkus pengecualian bahkan jika Anda menggunakan RuntimeCompatibilityAttribute kelas untuk menentukan bahwa Anda tidak ingin mereka dibungkus. Dalam hal ini, pengecualian hanya dibongkar di dalam blok tangkapan atau filter pengecualian.

Konstruktor

RuntimeCompatibilityAttribute()

Menginisialisasi instans baru kelas RuntimeCompatibilityAttribute.

Properti

TypeId

Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute.

(Diperoleh dari Attribute)
WrapNonExceptionThrows

Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan membungkus pengecualian yang tidak berasal dari Exception kelas dengan RuntimeWrappedException objek .

Metode

Equals(Object)

Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
GetHashCode()

Mengembalikan kode hash untuk instans ini.

(Diperoleh dari Attribute)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
IsDefaultAttribute()

Ketika ditimpa di kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan.

(Diperoleh dari Attribute)
Match(Object)

Saat ditimpa di kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1).

(Diperoleh dari Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Menyediakan akses ke properti dan metode yang diekspos oleh objek.

(Diperoleh dari Attribute)

Berlaku untuk