Bagikan melalui


VariantWrapper Kelas

Definisi

Perhatian

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

Marshals data jenis VT_VARIANT | VT_BYREF dari yang dikelola ke kode yang tidak dikelola. Kelas ini tidak dapat diwariskan.

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
Warisan
VariantWrapper
Atribut

Contoh

Contoh kode berikut menunjukkan cara menggunakan VariantWrapper kelas untuk membungkus Object yang diteruskan oleh interop marshaler sebagai 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)

Keterangan

Tujuannya VariantWrapper adalah untuk menambahkan satu tingkat tidak langsung saat marshaling jenis terkelola ke jenis yang VARIANT sesuai.

Anda dapat menggunakan kelas ini untuk membungkus Object yang diteruskan oleh marshaler interop sebagai VT_VARIANT | VT_BYREF. Dalam versi 1.0 dan 1.1 dari .NET Framework, tidak dimungkinkan untuk marshal varian data jenis VT_VARIANT | VT_BYREF ke kode yang tidak dikelola. Marshaler interop melewati varian jenis terkelola (misalnya, VT_BSTR | VT_BYREF untuk String, atau VT_I4 | VT_BYREF untuk Int32), tetapi tidak VT_VARIANT | VT_BYREF.

Salah satu keuntungan menggunakan VT_VARIANT | VT_BYREF jenis varian adalah bahwa jenis data dapat diubah selama panggilan metode. Misalnya, Anda dapat meneruskan VT_VARIANT | VT_BYREF jenis varian yang berisi VT_BSTR dan mendapatkan varian yang dikembalikan yang berisi VT_I4 setelah panggilan metode. Karena COM interop marshaler tidak memiliki cara untuk mengetahui kapan harus melewati VT_BSTR | VT_BYREF dan kapan harus lulus VT_VARIANT | VT_BYREF, yang menunjuk ke varian yang berisi BSTR untuk parameter yang dideklarasikan sebagai VARIANT *, Anda dapat menginstruksikan marshaler dengan menggunakan VariantWrapper.

Perhatikan bahwa pengikatan awal tidak didukung; Anda hanya dapat menggunakan VariantWrapper saat memanggil InvokeMember atau dengan antarmuka khusus Dispatch yang disebut dengan cara terikat awal. Di C#, Anda juga harus menggunakan ref kata kunci untuk menentukan ByRef semantik untuk parameter jenis VariantWrapperapa pun. Di Visual Basic, ByRef semantik ditambahkan secara otomatis untuk setiap panggilan pengikatan akhir implisit. Perhatikan juga bahwa objek berlapis VariantWrapper dan array VariantWrapper objek tidak didukung.

Konstruktor

VariantWrapper(Object)
Kedaluwarsa.

Menginisialisasi instans VariantWrapper baru kelas untuk parameter yang ditentukan Object .

Properti

WrappedObject
Kedaluwarsa.

Mendapatkan objek yang dibungkus oleh VariantWrapper objek .

Metode

Equals(Object)
Kedaluwarsa.

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()
Kedaluwarsa.

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()
Kedaluwarsa.

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()
Kedaluwarsa.

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ToString()
Kedaluwarsa.

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk