VariantWrapper Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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_BYREF
element , 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) |