VariantWrapper Třída

Definice

Upozornění

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

Zařadí data typu VT_VARIANT | VT_BYREF ze spravovaného na nespravovaný kód. 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 , který interop marshaler předá 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 příkazu je přidat jednu úroveň nepřímého přístupu 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 , který zařazovač zprostředkovatele komunikace předá jako VT_VARIANT | VT_BYREF. Ve verzích 1.0 a 1.1 rozhraní .NET Framework nebylo možné zařadovat data variant typu VT_VARIANT | VT_BYREF do nespravovaného kódu. Zařazovač komunikace předal variantu spravovaného typu (například VT_BSTR | VT_BYREF pro String, nebo VT_I4 | VT_BYREF pro Int32), ale nikoli VT_VARIANT | VT_BYREF.

Jednou z výhod použití VT_VARIANT | VT_BYREF variantních typů je, ž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, která po volání metody obsahuje VT_I4 . Protože zařazovač zprostředkovatele komunikace COM nemůže zjistit, kdy předat VT_BSTR | VT_BYREF a kdy předat VT_VARIANT | VT_BYREF, který odkazuje na variantu obsahující BSTR parametr pro 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 Dispatch-only volaným v rané vazbě. V jazyce C# je také nutné použít ref klíčové slovo k určení ByRef sémantiky pro libovolný parametr typu VariantWrapper. V jazyce Visual Basic jsou ByRef sémantiky přidány automaticky pro každé implicitní volání pozdní vazby. Všimněte si také, že vnořování VariantWrapper objektů a polí VariantWrapper objektů není podporováno.

Konstruktory

VariantWrapper(Object)
Zastaralé.

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

Vlastnosti

WrappedObject
Zastaralé.

Získá objekt zabalený objektem VariantWrapper .

Metody

Equals(Object)
Zastaralé.

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

Slouží jako výchozí hashovací funkce.

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

Type Získá z aktuální instance.

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

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

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

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

(Zděděno od Object)

Platí pro