VariantWrapper Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Figyelemfelhívás
VariantWrapper and support for marshalling to the VARIANT type may be unavailable in future releases.
A felügyelttől a nem felügyelt kódig típusú VT_VARIANT | VT_BYREF adatokat ad meg. Ez az osztály nem örökölhető.
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
- Öröklődés
-
VariantWrapper
- Attribútumok
Példák
Az alábbi példakód bemutatja, hogyan használhatja az osztályt egy VariantWrapper olyan sortörésre Object , amelyet az interop marshaler átad 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)
Megjegyzések
A cél VariantWrapper az, hogy egy szintű közvetettség legyen hozzáadva, amikor egy felügyelt típust a megfelelő VARIANT típushoz szeretne hozzáadni.
Ezzel az osztályval körbefuttathat egy olyan szakaszt Object , amelyet az interop marshaler a következőképpen VT_VARIANT | VT_BYREFhalad át. A .NET-keretrendszer 1.0-s és 1.1-es verzióiban nem lehetett VT_VARIANT | VT_BYREF típusú változatadatokat nem felügyelt kódra létrehozni. Az interop marshaler megfelelt a felügyelt típus egyik változatának (például VT_BSTR | VT_BYREF : String, vagy VT_I4 | VT_BYREF ), Int32de nem VT_VARIANT | VT_BYREF.
A variánstípusok használatának VT_VARIANT | VT_BYREF egyik előnye, hogy az adatok típusa módosítható egy metódushívás során. Átadhat például egy olyan változattípust VT_VARIANT | VT_BYREF , amely egy VT_BSTR metódushívást követően tartalmaz, és visszaad egy olyan változatot, amely tartalmaz egy VT_I4 metódushívást. Mivel a COM interop marshaler nem tudja, hogy mikor kell átadni VT_BSTR | VT_BYREF és mikor kell átadni VT_VARIANT | VT_BYREF, amely egy olyan változatra mutat, amely a deklarált BSTRparaméterekhez tartalmazVARIANT *, utasíthatja a marsallt a használatával VariantWrapper.
Vegye figyelembe, hogy a korai kötés nem támogatott; csak akkor használható VariantWrapper , ha hív, InvokeMember vagy ha a dispatch-only felület hívott korai kötött módon. A C#-ban a ref kulcsszóval is meg kell adnia ByRef a szemantikát bármilyen típusú VariantWrapperparaméterhez. A Visual Basic ByRef szemantikája automatikusan hozzáadódik minden implicit késői kötésű híváshoz. Azt is vegye figyelembe, hogy az objektumok és objektumok tömbjeinek VariantWrapper beágyazása VariantWrapper nem támogatott.
Konstruktorok
| Name | Description |
|---|---|
| VariantWrapper(Object) |
Elavult.
Inicializálja a VariantWrapper megadott Object paraméter osztályának új példányát. |
Tulajdonságok
| Name | Description |
|---|---|
| WrappedObject |
Elavult.
Lekéri az objektumot az VariantWrapper objektumba burkolva. |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Elavult.
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Elavult.
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Elavult.
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Elavult.
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Elavult.
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |