RuntimeCompatibilityAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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) |