RuntimeCompatibilityAttribute Klasa

Definicja

Określa, czy należy opakowować wyjątki, które nie pochodzą z klasy Exception z obiektem RuntimeWrappedException. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
RuntimeCompatibilityAttribute
Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak zastosować RuntimeCompatibilityAttribute klasę do zestawu, który zgłasza String obiekt jako wyjątek w języku C++ i przechwytuje go przy użyciu RuntimeWrappedException obiektu.

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;
}

Uwagi

Niektóre języki, takie jak C++, umożliwiają zgłaszanie wyjątków dowolnego typu. Inne języki, takie jak Microsoft C# i Visual Basic, wymagają, aby każdy zgłoszony wyjątek pochodził z klasy Exception. Aby zachować zgodność między językami, środowisko uruchomieniowe języka wspólnego (CLR) opakowuje obiekty, które nie pochodzą z Exception obiektu RuntimeWrappedException .

Można użyć RuntimeCompatibilityAttribute klasy , aby określić, czy wyjątki powinny być wyświetlane wewnątrz bloków catch i filtrów wyjątków dla zestawu. Wiele kompilatorów języka, w tym Microsoft C# i Visual Basic kompilatorów, stosuje ten atrybut domyślnie, aby określić zachowanie opakowujące.

Należy pamiętać, że środowisko uruchomieniowe nadal opakowuje wyjątki, nawet jeśli używasz RuntimeCompatibilityAttribute klasy do określenia, że nie mają być opakowane. W takim przypadku wyjątki są niezapisane tylko wewnątrz bloków catch lub filtrów wyjątków.

Konstruktory

Nazwa Opis
RuntimeCompatibilityAttribute()

Inicjuje nowe wystąpienie klasy RuntimeCompatibilityAttribute.

Właściwości

Nazwa Opis
TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attribute.

(Odziedziczone po Attribute)
WrapNonExceptionThrows

Pobiera lub ustawia wartość wskazującą, czy należy opakowować wyjątki, które nie pochodzą z Exception klasy z obiektem RuntimeWrappedException .

Metody

Nazwa Opis
Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca kod skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

Po zastąpieniu w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

Po zastąpieniu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie obiektu, którego można użyć do uzyskania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Zapewnia dostęp do właściwości i metod uwidocznionych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy