VariantWrapper VariantWrapper VariantWrapper VariantWrapper Class

Definición

Advertencia

Esta API está ya obsoleta.

Serializa los datos de tipo VT_VARIANT | VT_BYREF desde código administrado a código no administrado.Marshals data of type VT_VARIANT | VT_BYREF from managed to unmanaged code. Esta clase no puede heredarse.This class cannot be inherited.

public ref class VariantWrapper sealed
[System.Serializable]
[System.Obsolete("VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.")]
public sealed class VariantWrapper
type VariantWrapper = class
Public NotInheritable Class VariantWrapper
Herencia
VariantWrapperVariantWrapperVariantWrapperVariantWrapper
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar el VariantWrapper clase para encapsular un Object que pasa el serializador de interoperabilidad como VT_VARIANT | VT_BYREF.The following code example demonstrates how to use the VariantWrapper class to wrap an Object that the interop marshaler passes as VT_VARIANT | VT_BYREF.

// Create an instance of an unmanged COM object.
UnmanagedComClass UnmanagedComClassInstance = new UnmanagedComClass();

// Create a string to pass to the COM object.
string helloString = "Hello World!";

// Wrap the string with the VariantWrapper class.
object var = new System.Runtime.InteropServices.VariantWrapper(helloString);

// Pass the wrapped object.
UnmanagedComClassInstance.MethodWithStringRefParam(ref var);
' Create an instance of an unmanged COM object.
Dim UnmanagedComClassInstance As New UnmanagedComClass()

' Create a string to pass to the COM object.
Dim helloString As String = "Hello World!"

' Wrap the string with the VariantWrapper class.
Dim var As Object = New System.Runtime.InteropServices.VariantWrapper(helloString)

' Pass the wrapped object.
UnmanagedComClassInstance.MethodWithStringRefParam(var)

Comentarios

El propósito de VariantWrapper consiste en Agregar un nivel de direccionamiento indirecto al serializar un tipo administrado correspondiente VARIANT tipo.The purpose of VariantWrapper is to add one level of indirection when marshaling a managed type to the corresponding VARIANT type.

Puede usar esta clase para encapsular un Object que pasa el serializador de interoperabilidad como VT_VARIANT | VT_BYREF.You can use this class to wrap an Object that the interop marshaler passes as VT_VARIANT | VT_BYREF. En las versiones 1.0 y 1.1 de .NET Framework, no era posible calcular las referencias de datos variant de tipo VT_VARIANT | VT_BYREF a código no administrado.In versions 1.0 and 1.1 of the .NET Framework, it was not possible to marshal variant data of type VT_VARIANT | VT_BYREF to unmanaged code. El serializador de interoperabilidad pasa una variante del tipo administrado (por ejemplo, VT_BSTR | VT_BYREF para String, o VT_I4 | VT_BYREF para Int32), pero no VT_VARIANT | VT_BYREF.The interop marshaler passed a variant of the managed type (for example, VT_BSTR | VT_BYREF for String, or VT_I4 | VT_BYREF for Int32), but not VT_VARIANT | VT_BYREF.

Una ventaja de usar VT_VARIANT | VT_BYREF tipos variant es que el tipo de datos puede cambiarse durante una llamada al método.One advantage of using VT_VARIANT | VT_BYREF variant types is that the type of data can be changed during a method call. Por ejemplo, puede pasar un VT_VARIANT | VT_BYREF tipo variant que contiene un VT_BSTR y get devuelve un tipo variant que contiene un VT_I4 después de una llamada al método.For example, you can pass a VT_VARIANT | VT_BYREF variant type that contains a VT_BSTR and get a variant returned that contains a VT_I4 after a method call. Dado que el serializador de interoperabilidad COM no tiene ninguna manera de saber cuándo se debe pasar VT_BSTR | VT_BYREF y cuándo se debe pasar VT_VARIANT | VT_BYREF, que señala a una variante que contiene un BSTR para los parámetros declarados como VARIANT *, puede indicar el contador de referencias mediante el uso de VariantWrapper.Because the COM interop marshaler has no way of knowing when to pass VT_BSTR | VT_BYREF and when to pass VT_VARIANT | VT_BYREF, which points to a variant that contains a BSTR for parameters declared as VARIANT *, you can instruct the marshaler by using VariantWrapper.

Tenga en cuenta que no se admite el enlace anticipado; Puede usar VariantWrapper sólo cuando se llama a InvokeMember o con una interfaz solo de envío denominado de forma anticipada enlazada.Note that early binding is not supported; you can use VariantWrapper only when calling InvokeMember or with a Dispatch-only interface called in an early bound fashion. En C#, también se debe usar el ref palabra clave para especificar ByRef semántica para cualquier parámetro de tipo VariantWrapper.In C#, you must also use the ref keyword to specify ByRef semantics for any parameter of type VariantWrapper. En Visual Basic, ByRef semántica se agrega automáticamente para cada llamada de enlace en tiempo de ejecución implícito.In Visual Basic, ByRef semantics are added automatically for every implicit late binding call. Tenga en cuenta también que el anidamiento VariantWrapper objetos y matrices de VariantWrapper objetos no se admite.Also note that nesting VariantWrapper objects and arrays of VariantWrapper objects is not supported.

Constructores

VariantWrapper(Object) VariantWrapper(Object) VariantWrapper(Object) VariantWrapper(Object)

Inicializa una nueva instancia de la VariantWrapper clase para el elemento especificado Object parámetro.Initializes a new instance of the VariantWrapper class for the specified Object parameter.

Propiedades

WrappedObject WrappedObject WrappedObject WrappedObject

Obtiene el objeto ajustado por el VariantWrapper objeto.Gets the object wrapped by the VariantWrapper object.

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Se aplica a