VariantWrapper 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í.
Precaución
VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.
Calcula las referencias de datos de tipo VT_VARIANT | VT_BYREF
de código administrado a no administrado. Esta clase no puede heredarse.
public ref class VariantWrapper sealed
[System.Obsolete("VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.")]
public sealed class VariantWrapper
public sealed class VariantWrapper
[System.Serializable]
public sealed class VariantWrapper
[<System.Obsolete("VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.")>]
type VariantWrapper = class
type VariantWrapper = class
[<System.Serializable>]
type VariantWrapper = class
Public NotInheritable Class VariantWrapper
- Herencia
-
VariantWrapper
- Atributos
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar la VariantWrapper clase para encapsular un Object que el serializador de interoperabilidad pasa como 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 es agregar un nivel de direccionamiento indirecto al serializar un tipo administrado al tipo correspondiente VARIANT
.
Puede usar esta clase para encapsular que Object el serializador de interoperabilidad pasa como VT_VARIANT | VT_BYREF
. En las versiones 1.0 y 1.1 de .NET Framework, no era posible serializar datos de variante de tipo VT_VARIANT | VT_BYREF
a código no administrado. El serializador de interoperabilidad pasó 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
.
Una ventaja de usar VT_VARIANT | VT_BYREF
tipos de variante es que el tipo de datos se puede cambiar durante una llamada al método. Por ejemplo, puede pasar un VT_VARIANT | VT_BYREF
tipo de variante que contenga y VT_BSTR
obtener una variante devuelta que contenga un VT_I4
elemento después de una llamada al método. Dado que el serializador de interoperabilidad COM no tiene ninguna manera de saber cuándo pasar y cuándo pasar VT_VARIANT | VT_BYREF
VT_BSTR | VT_BYREF
, que apunta a una variante que contiene un BSTR
para los parámetros declarados como VARIANT *
, puede indicar al serializador mediante VariantWrapper.
Tenga en cuenta que no se admite el enlace anticipado; Solo puede usar VariantWrapper al llamar a InvokeMember o con una interfaz de solo distribución llamada de forma temprana. En C#, también debe usar la palabra clave para especificar ByRef
la ref
semántica de cualquier parámetro de tipo VariantWrapper. En Visual Basic, ByRef
la semántica se agrega automáticamente para cada llamada implícita de enlace en tiempo de espera. Tenga en cuenta también que no se admiten el anidamiento VariantWrapper de objetos y matrices de VariantWrapper objetos.
Constructores
VariantWrapper(Object) |
Obsoletos.
Inicializa una nueva instancia de la clase VariantWrapper para el parámetro Object especificado. |
Propiedades
WrappedObject |
Obsoletos.
Obtiene el objeto ajustado por el objeto VariantWrapper. |
Métodos
Equals(Object) |
Obsoletos.
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Obsoletos.
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obsoletos.
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Obsoletos.
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Obsoletos.
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |