RuntimeCompatibilityAttribute Klasa

Definicja

Określa, czy wyjątki, które nie pochodzą z klasy Exception z obiektem RuntimeWrappedException.Specifies whether to wrap exceptions that do not derive from the Exception class with a RuntimeWrappedException object. Klasa ta nie może być dziedziczona.This class cannot be inherited.

public ref class RuntimeCompatibilityAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)]
[System.Serializable]
public sealed class RuntimeCompatibilityAttribute : Attribute
type RuntimeCompatibilityAttribute = class
    inherit Attribute
Public NotInheritable Class RuntimeCompatibilityAttribute
Inherits Attribute
Dziedziczenie
RuntimeCompatibilityAttribute
Atrybuty

Przykłady

Poniższy przykład kodu demonstruje sposób zastosowania klasy RuntimeCompatibilityAttribute do zestawu, który zgłasza obiekt String jako wyjątek w C++ i przechwytuje go przy użyciu obiektu RuntimeWrappedException.The following code example demonstrates how to apply the RuntimeCompatibilityAttribute class to an assembly that throws a String object as an exception in C++ and catches it using a RuntimeWrappedException object.

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.Some languages, such as C++, allow you to throw exceptions of any type. Inne języki, takie jak Microsoft C# i Visual Basic, wymagają, aby każdy zgłoszony wyjątek był pochodną klasy Exception.Other languages, such as Microsoft C# and Visual Basic, require that every thrown exception be derived from the Exception class. Aby zachować zgodność między językami, środowisko uruchomieniowe języka wspólnego (CLR) otacza obiekty, które nie pochodzą od Exception w obiekcie RuntimeWrappedException.To maintain compatibility between languages, the common language runtime (CLR) wraps objects that do not derive from Exception in a RuntimeWrappedException object.

Można użyć klasy RuntimeCompatibilityAttribute, aby określić, czy wyjątki powinny być widoczne wewnątrz bloków catch i filtrów wyjątków dla zestawu.You can use the RuntimeCompatibilityAttribute class to specify whether exceptions should appear wrapped inside catch blocks and exception filters for an assembly. Wiele kompilatorów języka, w tym kompilatorów firmy Microsoft C# i Visual Basic, Zastosuj ten atrybut domyślnie, aby określić zachowanie zawijania.Many language compilers, including the Microsoft C# and Visual Basic compilers, apply this attribute by default to specify the wrapping behavior.

Należy pamiętać, że środowisko uruchomieniowe ciągle otacza wyjątki, nawet jeśli używasz klasy RuntimeCompatibilityAttribute, aby określić, że mają być opakowane.Note that the runtime still wraps exceptions even if you use the RuntimeCompatibilityAttribute class to specify that you do not want them wrapped. W takim przypadku wyjątki są rozpakowane tylko wewnątrz bloków catch lub filtrów wyjątków.In this case, exceptions are unwrapped only inside catch blocks or exception filters.

Konstruktory

RuntimeCompatibilityAttribute()

Inicjuje nowe wystąpienie klasy RuntimeCompatibilityAttribute klasy.Initializes a new instance of the RuntimeCompatibilityAttribute class.

Właściwości

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Odziedziczone po Attribute)
WrapNonExceptionThrows

Pobiera lub ustawia wartość wskazującą, czy wyjątki, które nie pochodzą z klasy Exception z obiektem RuntimeWrappedException.Gets or sets a value that indicates whether to wrap exceptions that do not derive from the Exception class with a RuntimeWrappedException object.

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.Returns a value that indicates whether this instance is equal to a specified object.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca kod skrótu dla tego wystąpienia.Returns the hash code for this instance.

(Odziedziczone po Attribute)
GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
IsDefaultAttribute()

Gdy jest zastępowany w klasie pochodnej, wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Odziedziczone po Attribute)
Match(Object)

Gdy jest zastępowany w klasie pochodnej, zwraca wartość wskazującą, czy to wystąpienie jest zgodne z określonym obiektem.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.Maps a set of names to a corresponding set of dispatch identifiers.

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

Pobiera informacje o typie dla obiektu, którego można użyć do uzyskania informacji o typie dla interfejsu.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).Retrieves the number of type information interfaces that an object provides (either 0 or 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.Provides access to properties and methods exposed by an object.

(Odziedziczone po Attribute)

Dotyczy