Sdílet prostřednictvím


RuntimeCompatibilityAttribute Třída

Definice

Určuje, zda se mají zabalit výjimky, které nejsou odvozeny z Exception třídy s objektem RuntimeWrappedException . Tato třída se nemůže dědit.

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
Dědičnost
RuntimeCompatibilityAttribute
Atributy

Příklady

Následující příklad kódu ukazuje, jak použít RuntimeCompatibilityAttribute třídu na sestavení, které vyvolá objekt jako výjimku v jazyce C++ a zachytí String jej pomocí objektu RuntimeWrappedException .

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

Poznámky

Některé jazyky, například C++, umožňují vyvolat výjimky libovolného typu. Jiné jazyky, například Microsoft C# a Visual Basic, vyžadují, aby každá vyvolaná výjimka byla odvozena Exception z třídy . Aby byla zachována kompatibilita mezi jazyky, modul CLR (Common Language Runtime) zalamuje objekty, které nejsou odvozeny od Exception objektu RuntimeWrappedException .

Pomocí třídy můžete RuntimeCompatibilityAttribute určit, zda se mají výjimky zobrazovat uvnitř bloků catch a filtrů výjimek pro sestavení. Mnoho kompilátorů jazyků, včetně kompilátorů Jazyka Microsoft C# a Visual Basic, používá tento atribut ve výchozím nastavení k určení chování obtékání.

Všimněte si, že modul runtime stále zabaluje výjimky, i když použijete RuntimeCompatibilityAttribute třídu k určení, že je nechcete zabalit. V tomto případě jsou výjimky nezabalené pouze uvnitř bloků catch nebo filtrů výjimek.

Konstruktory

RuntimeCompatibilityAttribute()

Inicializuje novou instanci RuntimeCompatibilityAttribute třídy .

Vlastnosti

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tuto Attributetřídu .

(Zděděno od Attribute)
WrapNonExceptionThrows

Získá nebo nastaví hodnotu, která označuje, zda se mají zabalit výjimky, které nejsou odvozeny z Exception třídy s objektem RuntimeWrappedException .

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí hodnotu hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě označuje, zda je hodnota této instance výchozí hodnotou pro odvozenou třídu.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

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

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, které lze použít k získání informací o typu pro rozhraní.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

(Zděděno od Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

(Zděděno od Attribute)

Platí pro