VariantWrapper Classe

Definição

Atenção

VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.

Organiza dados do tipo VT_VARIANT | VT_BYREF , desde código gerido até código não gerido. Esta 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 seguinte demonstra como usar a VariantWrapper classe para envolver 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)

Observações

O objetivo é VariantWrapper adicionar um nível de indireção ao agrupar um tipo gerido para o tipo correspondente VARIANT .

Pode usar esta classe para encapsular e Object que o marshaler interop passa como VT_VARIANT | VT_BYREF. Nas versões 1.0 e 1.1 do .NET Framework, não era possível transferir dados variantes do tipo VT_VARIANT | VT_BYREF para código não gerido. O marshaler de interoperabilidade passava uma variante do tipo gerido (por exemplo, VT_BSTR | VT_BYREF para String, ou VT_I4 | VT_BYREF para Int32), mas não VT_VARIANT | 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, podes passar um VT_VARIANT | VT_BYREF tipo de variante que contém um VT_BSTR e receber uma variante devolvida que contém um VT_I4 após uma chamada de método. Como o marshaler de interoperabilidade COM não tem forma de 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 *, pode-se instruir o marshaler usando VariantWrapper.

Note que a ligação inicial não é suportada; só pode ser usado VariantWrapper ao chamar InvokeMember ou com uma interface apenas de Despacho chamada de forma antecipada. Em C#, também deve usar a ref palavra-chave para especificar ByRef semântica para qualquer parâmetro do tipo VariantWrapper. Em Visual Basic, ByRef semântica é adicionada automaticamente para cada chamada de ligação tardia implícita. Note também que o aninhamento VariantWrapper de objetos e arrays de VariantWrapper objetos não é suportado.

Construtores

Name Description
VariantWrapper(Object)
Obsoleto.

Inicializa uma nova instância da VariantWrapper classe para o parâmetro especificado Object .

Propriedades

Name Description
WrappedObject
Obsoleto.

Faz com que o objeto seja envolvido pelo VariantWrapper objeto.

Métodos

Name Description
Equals(Object)
Obsoleto.

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()
Obsoleto.

Serve como função de hash predefinida.

(Herdado de Object)
GetType()
Obsoleto.

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()
Obsoleto.

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()
Obsoleto.

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a