Freigeben über


RuntimeCompatibilityAttribute Klasse

Definition

Gibt an, ob Ausnahmen, die nicht von der Exception-Klasse abgeleitet sind, mit einem RuntimeWrappedException-Objekt umschlossen werden sollen. Diese Klasse kann nicht vererbt werden.

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
Vererbung
RuntimeCompatibilityAttribute
Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die RuntimeCompatibilityAttribute -Klasse auf eine Assembly angewendet wird, die ein String -Objekt als Ausnahme in C++ auslöst und mithilfe eines RuntimeWrappedException -Objekts abfängt.

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

Hinweise

In einigen Sprachen, z. B. C++, können Sie Ausnahmen eines beliebigen Typs auslösen. Andere Sprachen, z. B. Microsoft C# und Visual Basic, erfordern, dass jede ausgelöste Ausnahme von der Exception -Klasse abgeleitet wird. Um die Kompatibilität zwischen Sprachen zu gewährleisten, umschließt die Common Language Runtime (CLR) Objekte, die nicht von Exception abgeleitet werden, in einem RuntimeWrappedException -Objekt.

Sie können die RuntimeCompatibilityAttribute -Klasse verwenden, um anzugeben, ob Ausnahmen in Catch-Blöcken und Ausnahmefiltern für eine Assembly umschlossen angezeigt werden sollen. Viele Sprachcompiler, einschließlich der Microsoft C#- und Visual Basic-Compiler, wenden dieses Attribut standardmäßig an, um das Umbruchverhalten anzugeben.

Beachten Sie, dass die Laufzeit ausnahmen auch dann umschließt, wenn Sie die RuntimeCompatibilityAttribute -Klasse verwenden, um anzugeben, dass sie nicht umschlossen werden sollen. In diesem Fall werden Ausnahmen nur innerhalb von Catch-Blöcken oder Ausnahmefiltern entpackt.

Konstruktoren

RuntimeCompatibilityAttribute()

Initialisiert eine neue Instanz der RuntimeCompatibilityAttribute-Klasse.

Eigenschaften

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)
WrapNonExceptionThrows

Ruft einen Wert ab, der angibt, ob Ausnahmen, die nicht von der Exception-Klasse abgeleitet sind, mit einem RuntimeWrappedException-Objekt umschlossen werden sollen, oder legt diesen fest.

Methoden

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Attribute)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

(Geerbt von Attribute)

Gilt für: