Partager via


VariantWrapper Classe

Définition

Attention

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

Marshale des données de type VT_VARIANT | VT_BYREF de code managé en code non managé. Cette classe ne peut pas être héritée.

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
Héritage
VariantWrapper
Attributs

Exemples

L’exemple de code suivant montre comment utiliser la VariantWrapper classe pour encapsuler un que le marshaleur d’interopérabilité Object passe comme 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)

Remarques

L’objectif de est d’ajouter VariantWrapper un niveau d’indirection lors du marshaling d’un type managé au type correspondant VARIANT .

Vous pouvez utiliser cette classe pour encapsuler un Object que le marshaleur d’interopérabilité passe comme VT_VARIANT | VT_BYREF. Dans les versions 1.0 et 1.1 du .NET Framework, il n’était pas possible de marshaler des données variant de type VT_VARIANT | VT_BYREF en code non managé. Le marshaleur d’interopérabilité a passé une variante du type managé (par exemple, VT_BSTR | VT_BYREF pour Stringou VT_I4 | VT_BYREF pour Int32), mais pas VT_VARIANT | VT_BYREF.

L’un des avantages de l’utilisation VT_VARIANT | VT_BYREF de types variant est que le type de données peut être modifié pendant un appel de méthode. Par exemple, vous pouvez passer un VT_VARIANT | VT_BYREF type de variante qui contient un VT_BSTR et obtenir une variante retournée qui contient un VT_I4 après un appel de méthode. Étant donné que le marshaleur d’interopérabilité COM n’a aucun moyen de savoir quand passer VT_BSTR | VT_BYREF et quand passer , qui pointe vers une variante qui contient un BSTR pour les paramètres déclarés VT_VARIANT | VT_BYREFcomme VARIANT *, vous pouvez indiquer au marshaleur à l’aide VariantWrapperde .

Notez que la liaison anticipée n’est pas prise en charge ; vous pouvez utiliser VariantWrapper uniquement lors de l’appel InvokeMember ou avec une interface Dispatch-only appelée de manière limitée précoce. En C#, vous devez également utiliser le mot clé pour spécifier ByRef la ref sémantique pour tout paramètre de type VariantWrapper. En Visual Basic, ByRef la sémantique est ajoutée automatiquement pour chaque appel de liaison tardive implicite. Notez également que l’imbrication d’objets VariantWrapper et de tableaux d’objets n’est VariantWrapper pas prise en charge.

Constructeurs

VariantWrapper(Object)
Obsolète.

Initialise une nouvelle instance de la classe VariantWrapper pour le paramètre Object spécifié.

Propriétés

WrappedObject
Obsolète.

Obtient l'objet encapsulé par l'objet VariantWrapper.

Méthodes

Equals(Object)
Obsolète.

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()
Obsolète.

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()
Obsolète.

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()
Obsolète.

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()
Obsolète.

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à