VariantWrapper Klas

Definitie

Let op

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

Marshals-gegevens van het type VT_VARIANT | VT_BYREF van beheerd naar onbeheerde code. Deze klasse kan niet worden overgenomen.

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
Overname
VariantWrapper
Kenmerken

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de VariantWrapper klasse gebruikt om een Object interoperabiliteits marshaler te verpakken als 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)

Opmerkingen

Het doel is VariantWrapper om één niveau van indirectie toe te voegen bij het marshalen van een beheerd type aan het bijbehorende VARIANT type.

U kunt deze klasse gebruiken om een Object interop marshaler te verpakken als VT_VARIANT | VT_BYREF. In versie 1.0 en 1.1 van het .NET Framework was het niet mogelijk om marshal variantgegevens van het type VT_VARIANT | VT_BYREF naar onbeheerde code. De interop marshaler heeft een variant van het beheerde type doorgegeven (bijvoorbeeld VT_BSTR | VT_BYREF voor String, of VT_I4 | VT_BYREF voor Int32), maar niet VT_VARIANT | VT_BYREF.

Een voordeel van het gebruik VT_VARIANT | VT_BYREF van varianttypen is dat het type gegevens kan worden gewijzigd tijdens een methode-aanroep. U kunt bijvoorbeeld een VT_VARIANT | VT_BYREF varianttype doorgeven dat een VT_BSTR variant bevat en een variant krijgt die een VT_I4 na een methodeaanroep bevat. Omdat de COM-interop marshaler niet weet wanneer moet worden doorgegeven en wanneer moet worden doorgegeven VT_BSTR | VT_BYREFVT_VARIANT | VT_BYREF, die verwijst naar een variant die een BSTR voor parameters bevat die zijn gedeclareerd als VARIANT *, kunt u de marshaler instrueren met behulp van VariantWrapper.

Houd er rekening mee dat vroege binding niet wordt ondersteund; u kunt alleen gebruiken VariantWrapper wanneer u belt InvokeMember of met een interface voor alleen-verzenden die op een vroeg gebonden manier wordt aangeroepen. In C# moet u ook het ref trefwoord gebruiken om semantiek op te geven ByRef voor een parameter van het type VariantWrapper. In Visual Basic worden ByRef semantiek automatisch toegevoegd voor elke impliciete late bindingsoproep. Houd er ook rekening mee dat het nesten VariantWrapper van objecten en matrices van VariantWrapper objecten niet wordt ondersteund.

Constructors

Name Description
VariantWrapper(Object)
Verouderd.

Initialiseert een nieuw exemplaar van de VariantWrapper klasse voor de opgegeven Object parameter.

Eigenschappen

Name Description
WrappedObject
Verouderd.

Hiermee wordt het object opgehaald dat door het VariantWrapper object is verpakt.

Methoden

Name Description
Equals(Object)
Verouderd.

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()
Verouderd.

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()
Verouderd.

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()
Verouderd.

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()
Verouderd.

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op