VariantWrapper Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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) |