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 les données de type VT_VARIANT | VT_BYREF managées vers du 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 Object marshaleur d’interopérabilité transmis en tant que 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 est VariantWrapper d’ajouter un niveau d’indirection lors du marshaling d’un type managé au type correspondant VARIANT .
Vous pouvez utiliser cette classe pour encapsuler un Object marshaleur d’interopérabilité transmis en tant que VT_VARIANT | VT_BYREF. Dans les versions 1.0 et 1.1 de l’infrastructure .NET, il n’était pas possible de marshaler les données variant de type VT_VARIANT | VT_BYREF au code non managé. Le marshaleur d’interopérabilité a passé une variante du type managé (par exemple, VT_BSTR | VT_BYREF pour String, ou 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 une VT_BSTR variante retournée VT_I4 après un appel de méthode. Étant donné que le marshaleur COM Interop n’a aucun moyen de savoir quand passer et quand passer VT_VARIANT | VT_BYREFVT_BSTR | VT_BYREF , qui pointe vers une variante qui contient un BSTR pour les paramètres déclarés comme VARIANT *, vous pouvez demander au marshaleur à l’aide VariantWrapper.
Notez que la liaison anticipée n’est pas prise en charge ; vous ne pouvez utiliser VariantWrapper que lorsque vous appelez InvokeMember ou avec une interface Dispatch uniquement appelée de manière anticipée. En C#, vous devez également utiliser le ref mot clé pour spécifier ByRef la sémantique pour n’importe quel paramètre de type VariantWrapper. Dans Visual Basic, ByRef sémantiques sont ajoutées automatiquement pour chaque appel de liaison tardive implicite. Notez également que l’imbrication d’objets VariantWrapper et de tableaux d’objets VariantWrapper n’est pas prise en charge.
Constructeurs
| Nom | Description |
|---|---|
| VariantWrapper(Object) |
Obsolète.
Initialise une nouvelle instance de la VariantWrapper classe pour le paramètre spécifié Object . |
Propriétés
| Nom | Description |
|---|---|
| WrappedObject |
Obsolète.
Obtient l’objet encapsulé par l’objet VariantWrapper . |
Méthodes
| Nom | Description |
|---|---|
| Equals(Object) |
Obsolète.
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Obsolète.
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obsolète.
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| MemberwiseClone() |
Obsolète.
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Obsolète.
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |