RuntimeCompatibilityAttribute Classe

Definizione

Specifica se eseguire il wrapping delle eccezioni che non derivano dalla classe Exception con un oggetto RuntimeWrappedException. La classe non può essere ereditata.

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
Ereditarietà
RuntimeCompatibilityAttribute
Attributi

Esempio

Nell'esempio di codice seguente viene illustrato come applicare la RuntimeCompatibilityAttribute classe a un assembly che genera un String oggetto come eccezione in C++ e lo rileva usando un RuntimeWrappedException oggetto .

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

Commenti

Alcuni linguaggi, ad esempio C++, consentono di generare eccezioni di qualsiasi tipo. Altri linguaggi, ad esempio Microsoft C# e Visual Basic, richiedono che ogni eccezione generata sia derivata dalla classe Exception. Per mantenere la compatibilità tra i linguaggi, Common Language Runtime (CLR) esegue il wrapping di oggetti che non derivano da Exception in un RuntimeWrappedException oggetto .

È possibile usare la RuntimeCompatibilityAttribute classe per specificare se le eccezioni devono essere incluse all'interno di blocchi catch e filtri eccezioni per un assembly. Molti compilatori di linguaggio, inclusi i compilatori Microsoft C# e Visual Basic, applicano questo attributo per impostazione predefinita per specificare il comportamento di wrapping.

Si noti che il runtime esegue comunque il wrapping delle eccezioni anche se si usa la classe per specificare che non si vuole eseguirne il RuntimeCompatibilityAttribute wrapping. In questo caso, le eccezioni vengono annullate solo all'interno di blocchi catch o filtri eccezioni.

Costruttori

Nome Descrizione
RuntimeCompatibilityAttribute()

Inizializza una nuova istanza della classe RuntimeCompatibilityAttribute.

Proprietà

Nome Descrizione
TypeId

Se implementato in una classe derivata, ottiene un identificatore univoco per questo Attribute.

(Ereditato da Attribute)
WrapNonExceptionThrows

Ottiene o imposta un valore che indica se eseguire il Exception wrapping delle eccezioni che non derivano dalla classe con un RuntimeWrappedException oggetto .

Metodi

Nome Descrizione
Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per questa istanza.

(Ereditato da Attribute)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

Quando sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di identificatori dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo per un oggetto, che può essere utilizzato per ottenere le informazioni sul tipo per un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero di interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso alle proprietà e ai metodi esposti da un oggetto .

(Ereditato da Attribute)

Si applica a