VariantWrapper Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro