RuntimeCompatibilityAttribute Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- 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) |