VariantWrapper Osztály

Definíció

Figyelemfelhívás

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

A felügyelttől a nem felügyelt kódig típusú VT_VARIANT | VT_BYREF adatokat ad meg. Ez az osztály nem örökölhető.

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
Öröklődés
VariantWrapper
Attribútumok

Példák

Az alábbi példakód bemutatja, hogyan használhatja az osztályt egy VariantWrapper olyan sortörésre Object , amelyet az interop marshaler átad 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)

Megjegyzések

A cél VariantWrapper az, hogy egy szintű közvetettség legyen hozzáadva, amikor egy felügyelt típust a megfelelő VARIANT típushoz szeretne hozzáadni.

Ezzel az osztályval körbefuttathat egy olyan szakaszt Object , amelyet az interop marshaler a következőképpen VT_VARIANT | VT_BYREFhalad át. A .NET-keretrendszer 1.0-s és 1.1-es verzióiban nem lehetett VT_VARIANT | VT_BYREF típusú változatadatokat nem felügyelt kódra létrehozni. Az interop marshaler megfelelt a felügyelt típus egyik változatának (például VT_BSTR | VT_BYREF : String, vagy VT_I4 | VT_BYREF ), Int32de nem VT_VARIANT | VT_BYREF.

A variánstípusok használatának VT_VARIANT | VT_BYREF egyik előnye, hogy az adatok típusa módosítható egy metódushívás során. Átadhat például egy olyan változattípust VT_VARIANT | VT_BYREF , amely egy VT_BSTR metódushívást követően tartalmaz, és visszaad egy olyan változatot, amely tartalmaz egy VT_I4 metódushívást. Mivel a COM interop marshaler nem tudja, hogy mikor kell átadni VT_BSTR | VT_BYREF és mikor kell átadni VT_VARIANT | VT_BYREF, amely egy olyan változatra mutat, amely a deklarált BSTRparaméterekhez tartalmazVARIANT *, utasíthatja a marsallt a használatával VariantWrapper.

Vegye figyelembe, hogy a korai kötés nem támogatott; csak akkor használható VariantWrapper , ha hív, InvokeMember vagy ha a dispatch-only felület hívott korai kötött módon. A C#-ban a ref kulcsszóval is meg kell adnia ByRef a szemantikát bármilyen típusú VariantWrapperparaméterhez. A Visual Basic ByRef szemantikája automatikusan hozzáadódik minden implicit késői kötésű híváshoz. Azt is vegye figyelembe, hogy az objektumok és objektumok tömbjeinek VariantWrapper beágyazása VariantWrapper nem támogatott.

Konstruktorok

Name Description
VariantWrapper(Object)
Elavult.

Inicializálja a VariantWrapper megadott Object paraméter osztályának új példányát.

Tulajdonságok

Name Description
WrappedObject
Elavult.

Lekéri az objektumot az VariantWrapper objektumba burkolva.

Metódusok

Name Description
Equals(Object)
Elavult.

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()
Elavult.

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()
Elavult.

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()
Elavult.

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()
Elavult.

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

A következőre érvényes: