RuntimeCompatibilityAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Especifica se as exceções não derivam da classe Exception com um objeto RuntimeWrappedException. Essa 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 a seguir demonstra como aplicar a RuntimeCompatibilityAttribute classe a um assembly que gera um String objeto como uma exceção no C++ e o captura 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;
}
Comentários
Alguns idiomas, como C++, permitem que você gere exceções de qualquer tipo. Outros idiomas, como Microsoft C# e Visual Basic, exigem que cada exceção gerada seja derivada da classe Exception. Para manter a compatibilidade entre idiomas, o CLR (Common Language Runtime) encapsula objetos que não derivam de Exception um RuntimeWrappedException objeto.
Você pode usar a RuntimeCompatibilityAttribute classe para especificar se as exceções devem aparecer encapsuladas dentro de blocos de captura e filtros de exceção para um assembly. Muitos compiladores de linguagem, incluindo os compiladores Microsoft C# e Visual Basic, aplicam esse atributo por padrão para especificar o comportamento de encapsulamento.
Observe que o runtime ainda encapsula exceções mesmo se você usar a RuntimeCompatibilityAttribute classe para especificar que não deseja que elas sejam encapsuladas. Nesse caso, as exceções são desembrulhadas somente dentro de blocos de captura ou filtros de exceção.
Construtores
| Nome | Description |
|---|---|
| RuntimeCompatibilityAttribute() |
Inicializa uma nova instância da classe RuntimeCompatibilityAttribute. |
Propriedades
| Nome | Description |
|---|---|
| TypeId |
Quando implementado em uma classe derivada, obtém um identificador exclusivo para esse Attribute. (Herdado de Attribute) |
| WrapNonExceptionThrows |
Obtém ou define um valor que indica se é necessário encapsular exceções que não derivam da Exception classe com um RuntimeWrappedException objeto. |
Métodos
| Nome | Description |
|---|---|
| Equals(Object) |
Retorna um valor que indica se essa instância é igual a um objeto especificado. (Herdado de Attribute) |
| GetHashCode() |
Devolve o código hash para esta instância. (Herdado de Attribute) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IsDefaultAttribute() |
Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada. (Herdado de Attribute) |
| Match(Object) |
Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado. (Herdado de Attribute) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição. (Herdado de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera as informações de tipo de um objeto, que podem ser usadas para obter as informações de tipo de uma interface. (Herdado de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1). (Herdado de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornece acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute) |