Udostępnij za pośrednictwem


VariantWrapper Klasa

Definicja

Przestroga

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

Marshaluje dane typu VT_VARIANT | VT_BYREF z zarządzanego do niezarządzanego kodu. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
VariantWrapper
Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak użyć VariantWrapper klasy do opakowania Object , że marshaler międzyoperacyjności przechodzi 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)

Uwagi

VariantWrapper Celem jest dodanie jednego poziomu pośredniego podczas marshalingu typu zarządzanego do odpowiedniego VARIANT typu.

Tej klasy można użyć do opakowania Object , że marshaler międzyoperacyjnej przechodzi jako VT_VARIANT | VT_BYREF. W wersjach 1.0 i 1.1 programu .NET Framework nie można było marshalować danych wariantów typu VT_VARIANT | VT_BYREF do niezarządzanego kodu. Marshaler międzyoperatyczny przeszedł wariant typu zarządzanego (na przykład VT_BSTR | VT_BYREF dla String, lub VT_I4 | VT_BYREF dla Int32), ale nie VT_VARIANT | VT_BYREF.

Jedną z zalet użycia VT_VARIANT | VT_BYREF typów wariantów jest to, że typ danych można zmienić podczas wywołania metody. Można na przykład przekazać typ wariantu VT_VARIANT | VT_BYREF , który zawiera VT_BSTR i uzyskać wariant zwrócony, który zawiera wywołanie VT_I4 metody po wywołaniu metody. Ponieważ marszałek międzyoperaktowy MODELU COM nie ma możliwości znajomości, kiedy należy przekazać VT_BSTR | VT_BYREF i kiedy przekazać VT_VARIANT | VT_BYREFelement , który wskazuje wariant zawierający BSTR parametry zadeklarowane jako VARIANT *, można poinstruować marszałka za pomocą polecenia VariantWrapper.

Należy pamiętać, że wczesne powiązanie nie jest obsługiwane; można używać VariantWrapper tylko w przypadku wywoływania InvokeMember lub interfejsu tylko do wysyłania wywoływanego we wczesnej modzie. W języku C#należy również użyć słowa kluczowego ref , aby określić ByRef semantyka dla dowolnego parametru typu VariantWrapper. W języku Visual Basic ByRef semantyka jest dodawana automatycznie dla każdego niejawnego wywołania opóźnionego powiązania. Należy również pamiętać, że zagnieżdżanie VariantWrapper obiektów i tablic VariantWrapper obiektów nie jest obsługiwane.

Konstruktory

VariantWrapper(Object)
Przestarzałe.

Inicjuje VariantWrapper nowe wystąpienie klasy dla określonego Object parametru.

Właściwości

WrappedObject
Przestarzałe.

Pobiera obiekt opakowany przez VariantWrapper obiekt.

Metody

Equals(Object)
Przestarzałe.

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()
Przestarzałe.

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()
Przestarzałe.

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()
Przestarzałe.

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()
Przestarzałe.

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy