VariantWrapper Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cuidado
VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.
Realiza marshaling de dados do tipo VT_VARIANT | VT_BYREF
de código gerenciado para código não gerenciado. Essa classe não pode ser herdada.
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
- Herança
-
VariantWrapper
- Atributos
Exemplos
O exemplo de código a seguir demonstra como usar a VariantWrapper classe para encapsular um Object que o marshaler de interoperabilidade passa 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)
Comentários
A finalidade de VariantWrapper é adicionar um nível de indireção ao realizar marshaling de um tipo gerenciado para o tipo correspondente VARIANT
.
Você pode usar essa classe para encapsular um Object que o marshaler de interoperabilidade passa como VT_VARIANT | VT_BYREF
. Nas versões 1.0 e 1.1 do .NET Framework, não era possível realizar marshaling de dados variantes do tipo VT_VARIANT | VT_BYREF
para código não gerenciado. O marshaler de interoperabilidade passou uma variante do tipo gerenciado (por exemplo, para ou VT_I4 | VT_BYREF
para ), mas não VT_VARIANT | VT_BYREF
.Int32StringVT_BSTR | VT_BYREF
Uma vantagem de usar VT_VARIANT | VT_BYREF
tipos variantes é que o tipo de dados pode ser alterado durante uma chamada de método. Por exemplo, você pode passar um VT_VARIANT | VT_BYREF
tipo variante que contém um VT_BSTR
e obter uma variante retornada que contém um VT_I4
após uma chamada de método. Como o marshaler de interoperabilidade COM não tem como saber quando passar VT_BSTR | VT_BYREF
e quando passar VT_VARIANT | VT_BYREF
, o que aponta para uma variante que contém um BSTR
para parâmetros declarados como VARIANT *
, você pode instruir o marshaler usando VariantWrapper.
Observe que não há suporte para associação antecipada; você só pode usar VariantWrapper ao chamar InvokeMember ou com uma interface somente expedição chamada de forma vinculada antecipadamente. Em C#, você também deve usar a ref
palavra-chave para especificar ByRef
semântica para qualquer parâmetro do tipo VariantWrapper. No Visual Basic, ByRef
a semântica é adicionada automaticamente para cada chamada de associação tardia implícita. Observe também que não há suporte para aninhamento VariantWrapper de objetos e matrizes de VariantWrapper objetos.
Construtores
VariantWrapper(Object) |
Obsoleto.
Inicializa uma nova instância da classe VariantWrapper do parâmetro Object especificado. |
Propriedades
WrappedObject |
Obsoleto.
Obtém o objeto encapsulado pelo objeto VariantWrapper. |
Métodos
Equals(Object) |
Obsoleto.
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Obsoleto.
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obsoleto.
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Obsoleto.
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Obsoleto.
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |