VariantWrapper Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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) |