Condividi tramite


RuntimeCompatibilityAttribute Classe

Definizione

Specifica se incapsulare le 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 Exception classe . 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 visualizzate all'interno di blocchi catch e filtri di eccezione per un assembly. Molti compilatori del 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 di eccezione.

Costruttori

RuntimeCompatibilityAttribute()

Inizializza una nuova istanza della classe RuntimeCompatibilityAttribute.

Proprietà

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)
WrapNonExceptionThrows

Ottiene o imposta un valore che indica se incapsulare le eccezioni che non derivano dalla classe Exception con un oggetto RuntimeWrappedException.

Metodi

Equals(Object)

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

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

In caso di 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 equivale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

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

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

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle 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 a proprietà e metodi esposti da un oggetto.

(Ereditato da Attribute)

Si applica a