RuntimeCompatibilityAttribute Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Especifica si se deben ajustar las excepciones que no derivan de la clase Exception con un objeto RuntimeWrappedException. Esta clase no puede heredarse.
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
- Herencia
- Atributos
Ejemplos
En el ejemplo de código siguiente se muestra cómo aplicar la RuntimeCompatibilityAttribute clase a un ensamblado que produce un String objeto como una excepción en C++ y lo captura mediante un 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;
}
Comentarios
Algunos lenguajes, como C++, permiten iniciar excepciones de cualquier tipo. Otros lenguajes, como Microsoft C# y Visual Basic, requieren que cada excepción iniciada se derive de la clase Exception. Para mantener la compatibilidad entre lenguajes, Common Language Runtime (CLR) encapsula los objetos que no derivan de Exception en un RuntimeWrappedException objeto .
Puede usar la RuntimeCompatibilityAttribute clase para especificar si las excepciones deben aparecer encapsuladas dentro de bloques catch y filtros de excepción para un ensamblado. Muchos compiladores de lenguaje, incluidos los compiladores de Microsoft C# y Visual Basic, aplican este atributo de forma predeterminada para especificar el comportamiento de ajuste.
Tenga en cuenta que el tiempo de ejecución sigue encapsulando excepciones incluso si usa la RuntimeCompatibilityAttribute clase para especificar que no desea que se ajusten. En este caso, las excepciones solo se desencapsulan dentro de bloques catch o filtros de excepción.
Constructores
| Nombre | Description |
|---|---|
| RuntimeCompatibilityAttribute() |
Inicializa una nueva instancia de la clase RuntimeCompatibilityAttribute. |
Propiedades
| Nombre | Description |
|---|---|
| TypeId |
Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Heredado de Attribute) |
| WrapNonExceptionThrows |
Obtiene o establece un valor que indica si se deben ajustar las excepciones que no derivan de la Exception clase con un RuntimeWrappedException objeto . |
Métodos
| Nombre | Description |
|---|---|
| Equals(Object) |
Devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Heredado de Attribute) |
| GetHashCode() |
Devuelve el código hash de esta instancia. (Heredado de Attribute) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| IsDefaultAttribute() |
Cuando se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada. (Heredado de Attribute) |
| Match(Object) |
Cuando se reemplaza en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Heredado de Attribute) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Heredado de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera la información de tipo de un objeto, que se puede usar para obtener la información de tipo de una interfaz. (Heredado de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Heredado de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acceso a propiedades y métodos expuestos por un objeto . (Heredado de Attribute) |