VariantWrapper Třída

Definice

Upozornění

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

Zařazuje data typu VT_VARIANT | VT_BYREF ze spravovaného do nespravovaného kódu. Tato třída se nemůže dědit.

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
Dědičnost
VariantWrapper
Atributy

Příklady

Následující příklad kódu ukazuje, jak použít VariantWrapper třídu k zabalení Object , že zprostředkovatele komunikace předává jako 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)

Poznámky

Účelem VariantWrapper je přidat jednu úroveň indirection při zařazování spravovaného typu do odpovídajícího VARIANT typu.

Tuto třídu můžete použít k zabalení Object , že zprostředkovatel komunikace předává jako VT_VARIANT | VT_BYREF. Ve verzích 1.0 a 1.1 rozhraní .NET Framework nebylo možné zařazovat data variant typu VT_VARIANT | VT_BYREF na nespravovaný kód. Zprostředkovatel komunikace předal variantu spravovaného typu (například VT_BSTR | VT_BYREF pro String, nebo VT_I4 | VT_BYREF pro Int32), ale ne VT_VARIANT | VT_BYREF.

Jednou z výhod použití VT_VARIANT | VT_BYREF variantních typů je to, že typ dat lze změnit během volání metody. Můžete například předat VT_VARIANT | VT_BYREF typ varianty, který obsahuje VT_BSTR a získat vrácenou variantu VT_I4 , která obsahuje po volání metody. Protože zprostředkovatel komunikace COM nemá žádný způsob, jak zjistit, kdy předat VT_BSTR | VT_BYREF a kdy předat VT_VARIANT | VT_BYREF, který odkazuje na variantu BSTR , která obsahuje parametry deklarované jako VARIANT *, můžete instruovat zařazovač pomocí VariantWrapper.

Mějte na paměti, že časná vazba není podporována; můžete použít VariantWrapper pouze při volání InvokeMember nebo s rozhraním jen pro odesílání volaným v raném vázaném módě. V jazyce C# musíte také použít ref klíčové slovo k určení ByRef sémantiky pro libovolný parametr typu VariantWrapper. V Visual Basic se ByRef sémantiky přidávají automaticky pro každé implicitní pozdní volání vazby. Všimněte si také, že vnoření VariantWrapper objektů a polí VariantWrapper objektů není podporováno.

Konstruktory

Name Description
VariantWrapper(Object)
Zastaralé.

Inicializuje novou instanci VariantWrapper třídy pro zadaný Object parametr.

Vlastnosti

Name Description
WrappedObject
Zastaralé.

Získá objekt zabalený objektem VariantWrapper .

Metody

Name Description
Equals(Object)
Zastaralé.

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()
Zastaralé.

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()
Zastaralé.

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()
Zastaralé.

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()
Zastaralé.

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro