Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

PreserveSigAttribute (Clase)

Indica que debe suprimirse la transformación de la firma de retval o la transformación del valor HRESULT que tiene lugar durante las llamadas de interoperabilidad COM.

System.Object
  System.Attribute
    System.Runtime.InteropServices.PreserveSigAttribute

Espacio de nombres:  System.Runtime.InteropServices
Ensamblado:  mscorlib (en mscorlib.dll)

[AttributeUsageAttribute(AttributeTargets.Method, Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class PreserveSigAttribute : Attribute

El tipo PreserveSigAttribute expone los siguientes miembros.

  NombreDescripción
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsPreserveSigAttributeInicializa una nueva instancia de la clase PreserveSigAttribute.
Arriba

  NombreDescripción
Propiedad públicaTypeIdCuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).
Arriba

  NombreDescripción
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsEqualsInfraestructura. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetHashCodeDevuelve el código hash de esta instancia. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoIsDefaultAttributeCuando se invalida en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkMatch Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privado_Attribute.GetIDsOfNamesAsigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoObtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoCount

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.InvokeProporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).
Arriba

Este atributo se puede aplicar a métodos.

De forma predeterminada, Tlbexp.exe (Exportador de la biblioteca de tipos) garantiza que una llamada que devuelve un valor HRESULT de S_OK se transforma de modo que el parámetro [out, retval] se utiliza como valor devuelto por la función. El valor HRESULT de S_OK se descarta. Para valores HRESULT distintos de S_OK, el motor en tiempo de ejecución produce una excepción y descarta el parámetro [out, retval]. Cuando PreserveSigAttribute se aplica a una firma de método administrado, las firmas administradas y no administradas del método con atributos son idénticas.

Es necesario conservar la firma de método original si el miembro devuelve más de un valor HRESULT correcto y se desean detectar los distintos valores. Como la mayoría de los miembros COM devuelven un valor HRESULT, al aplicar PreserveSigAttribute se puede recuperar un entero que representa el valor HRESULT correcto o incorrecto. Tlbexp.exe conserva los parámetros [out, retval] como parámetros Out en la firma administrada.

TlbImp.exe (Importador de la biblioteca de tipos) también aplica este atributo; aplica el atributo a las interfaces Dispinterface cuando importa una biblioteca de tipos.

NotaNota

Los tipos de valor devuelto Currency, Guid y Object no son compatibles con la clase PreserveSigAttribute cuando se produce la interoperación de COM a código administrado y el código administrado está marcado con la clase PreserveSigAttribute. Si intenta utilizar uno de estos tipos de valor devuelto con la clase PreserveSigAttribute durante estas condiciones, se inicia una TypeLoadException.

En el siguiente ejemplo se muestra la forma en que Tlbexp.exe convierte un método de C# sin PreserveSigAttribute al exportar un ensamblado a una biblioteca de tipos COM.

Firma administrada:

int DoSomething (long l);

Firma no administrada:

HRESULT DoSomething ([in] long l, [out, retval] int * i);

Cuando PreserveSigAttribute se aplica al mismo método de C# y se exporta el ensamblado, la conversión del método difiere de la del ejemplo anterior. Tenga en cuenta que Tlbexp.exe quita el valor HRESULT y el modificador del parámetro [out, retval].

Firma administrada:

[PreserveSig] int DoSomething (long l);

Firma no administrada:

int DoSomething ([in] long l);

.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros públicos static (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft