VariantWrapper Classe

Definizione

Attenzione

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

Esegue il marshalling dei dati di tipo VT_VARIANT | VT_BYREF dal codice gestito al codice non gestito. La classe non può essere ereditata.

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
Ereditarietà
VariantWrapper
Attributi

Esempio

Nell'esempio di codice seguente viene illustrato come usare la classe per eseguire il VariantWrapper wrapping di un Object oggetto che il gestore di marshalling di interoperabilità passa come 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)

Commenti

Lo scopo di VariantWrapper è aggiungere un livello di riferimento indiretto durante il marshalling di un tipo gestito al tipo corrispondente VARIANT .

È possibile usare questa classe per eseguire il wrapping di un Object oggetto che il gestore di marshalling di interoperabilità passa come VT_VARIANT | VT_BYREF. Nelle versioni 1.0 e 1.1 di .NET Framework non è stato possibile effettuare il marshalling dei dati varianti di tipo VT_VARIANT | VT_BYREF a codice non gestito. Il gestore di marshalling di interoperabilità ha passato una variante del tipo gestito (ad esempio, VT_BSTR | VT_BYREF per Stringo VT_I4 | VT_BYREF per Int32), ma non VT_VARIANT | VT_BYREF.

Un vantaggio dell'uso VT_VARIANT | VT_BYREF di tipi variant è che il tipo di dati può essere modificato durante una chiamata al metodo. Ad esempio, è possibile passare un VT_VARIANT | VT_BYREF tipo variant che contiene un VT_BSTR oggetto e ottenere una variante restituita contenente un VT_I4 oggetto dopo una chiamata al metodo. Poiché il gestore di marshalling di interoperabilità COM non è in grado di sapere quando passare VT_BSTR | VT_BYREF e quando passare VT_VARIANT | VT_BYREF, che punta a una variante che contiene un BSTR per i parametri dichiarati come VARIANT *, è possibile indicare al gestore di marshalling usando VariantWrapper.

Si noti che l'associazione anticipata non è supportata; è possibile usare VariantWrapper solo quando si chiama InvokeMember o con un'interfaccia di sola invio chiamata in modo con associazione anticipata. In C#, è necessario usare anche la parola chiave per specificare ByRef la ref semantica per qualsiasi parametro di tipo VariantWrapper. In Visual Basic, ByRef la semantica viene aggiunta automaticamente per ogni chiamata di associazione tardiva implicita. Si noti anche che l'annidamento VariantWrapper di oggetti e matrici di VariantWrapper oggetti non è supportato.

Costruttori

VariantWrapper(Object)
Obsoleti.

Inizializza una nuova istanza della classe VariantWrapper per il parametro Object specificato.

Proprietà

WrappedObject
Obsoleti.

Ottiene l'oggetto incluso dall'oggetto VariantWrapper.

Metodi

Equals(Object)
Obsoleti.

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()
Obsoleti.

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()
Obsoleti.

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()
Obsoleti.

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()
Obsoleti.

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a