RuntimeCompatibilityAttribute Classe

Definição

Especifica se deve encapsular as exceções que não derivam da classe Exception com um objeto RuntimeWrappedException.Specifies whether to wrap exceptions that do not derive from the Exception class with a RuntimeWrappedException object. Essa classe não pode ser herdada.This class cannot be inherited.

public ref class RuntimeCompatibilityAttribute sealed : Attribute
public sealed class RuntimeCompatibilityAttribute : 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
type RuntimeCompatibilityAttribute = class
    inherit 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 a seguir demonstra como aplicar a RuntimeCompatibilityAttribute classe a um assembly que gera um String objeto como uma exceção em C++ e o captura usando um RuntimeWrappedException objeto.The following code example demonstrates how to apply the RuntimeCompatibilityAttribute class to an assembly that throws a String object as an exception in C++ and catches it using a RuntimeWrappedException object.

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

Algumas linguagens, como C++, permitem que você gere exceções de qualquer tipo.Some languages, such as C++, allow you to throw exceptions of any type. Outras linguagens, como Microsoft C# e Visual Basic, exigem que cada exceção gerada seja derivada da Exception classe.Other languages, such as Microsoft C# and Visual Basic, require that every thrown exception be derived from the Exception class. Para manter a compatibilidade entre os idiomas, o Common Language Runtime (CLR) encapsula objetos que não derivam de Exception um RuntimeWrappedException objeto.To maintain compatibility between languages, the common language runtime (CLR) wraps objects that do not derive from Exception in a RuntimeWrappedException object.

Você pode usar a RuntimeCompatibilityAttribute classe para especificar se as exceções devem aparecer encapsuladas dentro de blocos catch e filtros de exceção para um assembly.You can use the RuntimeCompatibilityAttribute class to specify whether exceptions should appear wrapped inside catch blocks and exception filters for an 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.Many language compilers, including the Microsoft C# and Visual Basic compilers, apply this attribute by default to specify the wrapping behavior.

Observe que o tempo de execução ainda encapsula exceções mesmo se você usar a RuntimeCompatibilityAttribute classe para especificar que não deseja que elas sejam encapsuladas.Note that the runtime still wraps exceptions even if you use the RuntimeCompatibilityAttribute class to specify that you do not want them wrapped. Nesse caso, as exceções são desenvolvidas somente dentro de blocos catch ou filtros de exceção.In this case, exceptions are unwrapped only inside catch blocks or exception filters.

Construtores

RuntimeCompatibilityAttribute()

Inicializa uma nova instância da classe RuntimeCompatibilityAttribute.Initializes a new instance of the RuntimeCompatibilityAttribute class.

Propriedades

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Herdado de Attribute)
WrapNonExceptionThrows

Obtém ou define um valor que indica se deverá encapsular as exceções não derivadas da classe Exception com um RuntimeWrappedException objeto.Gets or sets a value that indicates whether to wrap exceptions that do not derive from the Exception class with a RuntimeWrappedException object.

Métodos

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.Returns a value that indicates whether this instance is equal to a specified object.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para a instância.Returns the hash code for this instance.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(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.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(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.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

Implantações explícitas de interface

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.Maps a set of names to a corresponding set of dispatch identifiers.

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

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.Retrieves the type information for an object, which can be used to get the type information for an 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).Retrieves the number of type information interfaces that an object provides (either 0 or 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.Provides access to properties and methods exposed by an object.

(Herdado de Attribute)

Aplica-se a