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 , który marshaler międzyoperacyjności przekazuje 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 programu jest dodanie jednego poziomu pośredniego podczas marshalingu typu zarządzanego do odpowiedniego VARIANT typu.

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

Jedną z zalet używania 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 zawierający element VT_BSTR i uzyskać zwrócony wariant zawierający VT_I4 wywołanie metody po wywołaniu metody. Ponieważ marshaler międzyoperatyczny MODELU COM nie ma możliwości poznania, kiedy należy przekazać VT_BSTR | VT_BYREF i kiedy przekazać VT_VARIANT | VT_BYREF, który wskazuje wariant zawierający BSTR parametry zadeklarowane jako VARIANT *, można poinstruować marshalera za pomocą polecenia VariantWrapper.

Należy pamiętać, że wczesne powiązanie nie jest obsługiwane; Można go używać VariantWrapper tylko podczas wywoływania interfejsu InvokeMember lub z interfejsem tylko do wysyłania wywoływanym we wczesnych granicach. W języku C# należy również użyć słowa kluczowego ref , aby określić ByRef semantykę dla dowolnego parametru typu VariantWrapper. W języku Visual Basic ByRef semantyka jest dodawana automatycznie dla każdego niejawnego późnego wywołania powiązania. Należy również zauważyć, ż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 owinięty 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 wartość bieżącego wystąpienia.

(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