VariantWrapper Classe

Definição

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, 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 dispatch chamada de forma vinculada antecipadamente. Em C#, você também deve usar o 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)

Aplica-se a