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 wrapping di un marshalling dell'interoperabilità VariantWrapper passato come VT_VARIANT | VT_BYREF.Object

// 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 è aggiungere un livello di VariantWrapper indiretto quando si esegue il marshalling di un tipo gestito al tipo corrispondente VARIANT .

È possibile usare questa classe per eseguire il wrapping di un Object marshalling dell'interoperabilità passato come VT_VARIANT | VT_BYREF. Nelle versioni 1.0 e 1.1 della .NET Framework non è stato possibile eseguire il marshalling dei dati varianti di tipo VT_VARIANT | VT_BYREF al codice non gestito. Il marshalling dell'interoperabilità ha passato una variante del tipo gestito (ad esempio, VT_BSTR | VT_BYREF per o VT_I4 | VT_BYREF per StringInt32), ma non VT_VARIANT | VT_BYREF.

Un vantaggio dell'uso VT_VARIANT | VT_BYREF di tipi varianti è 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 marshalling dell'interoperabilità COM non ha modo di sapere quando passare VT_BSTR | VT_BYREF e quando passare VT_VARIANT | VT_BYREF, che punta a una variante che contiene un BSTR valore per i parametri dichiarati come VARIANT *, è possibile indicare al marshalling usando VariantWrapper.

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

Costruttori

VariantWrapper(Object)

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

Proprietà

WrappedObject

Ottiene l'oggetto incluso dall'oggetto VariantWrapper.

Metodi

Equals(Object)

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

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a