RuntimeCompatibilityAttribute Classe

Definição

Especifica se deve envolver exceções que não derivam da Exception classe com um RuntimeWrappedException objeto. Esta classe não pode ser herdada.

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
Herança
RuntimeCompatibilityAttribute
Atributos

Exemplos

O exemplo de código seguinte demonstra como aplicar a RuntimeCompatibilityAttribute classe a um assembly que lança um String objeto como exceção em C++ e o apanha usando um RuntimeWrappedException objeto.

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

Observações

Algumas linguagens, como o C++, permitem lançar exceções de qualquer tipo. Outras linguagens, como Microsoft C# e Visual Basic, exigem que cada exceção lançada seja derivada da classe Exception. Para manter a compatibilidade entre linguagens, o tempo de execução da linguagem comum (CLR) envolve objetos que não derivam de Exception dentro de um RuntimeWrappedException objeto.

Podes usar a RuntimeCompatibilityAttribute classe para especificar se as exceções devem aparecer encapsuladas dentro de blocos de captura e filtros de exceção para uma assembleia. Muitos compiladores de linguagens, incluindo os compiladores Microsoft C# e Visual Basic, aplicam este atributo por defeito para especificar o comportamento de envolvimento.

Note que o runtime continua a envolver exceções mesmo que use a RuntimeCompatibilityAttribute classe para especificar que não quer que sejam encapsuladas. Neste caso, as exceções são desembrulhadas apenas dentro dos blocos de captura ou filtros de exceção.

Construtores

Name Description
RuntimeCompatibilityAttribute()

Inicializa uma nova instância da RuntimeCompatibilityAttribute classe.

Propriedades

Name Description
TypeId

Quando implementado numa classe derivada, obtém um identificador único para esta Attribute.

(Herdado de Attribute)
WrapNonExceptionThrows

Obtém ou define um valor que indica se deve envolver exceções que não derivam da Exception classe com um RuntimeWrappedException objeto.

Métodos

Name Description
Equals(Object)

Devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Devolve o código de hash para esta instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a