Udostępnij za pośrednictwem


RuntimeCompatibilityAttribute Klasa

Definicja

Określa, czy należy zawijać wyjątki, które nie pochodzą z Exception klasy 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 Exception klasy. 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ć opakowane wewnątrz bloków catch i filtrów wyjątków dla zestawu. Wiele kompilatorów języka, w tym kompilatorów języka Microsoft C# i Visual Basic, domyślnie stosuje ten atrybut, aby określić zachowanie opakowujące.

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

Konstruktory

RuntimeCompatibilityAttribute()

Inicjuje nowe wystąpienie klasy RuntimeCompatibilityAttribute.

Właściwości

TypeId

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

(Odziedziczone po Attribute)
WrapNonExceptionThrows

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

Metody

Equals(Object)

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

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
IsDefaultAttribute()

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

(Odziedziczone po Attribute)
Match(Object)

W przypadku zastąpienia 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

_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 pobrania informacji o typie 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)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy