VariantWrapper Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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_BYREF
comme 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) |