Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais
Nous recommandons d’utiliser Visual Studio 2017

DataDefaultObjectAttribute, classe

Spécifie qu'une entité de prise en charge DDEX une implémentation par défaut qui doit être retourné lorsqu'un fournisseur ne fournit pas d'implémentation.

Object
  Attribute
    Microsoft.VisualStudio.Data.Core.DataDefaultObjectAttribute

Espace de noms :  Microsoft.VisualStudio.Data.Core
Assembly :  Microsoft.VisualStudio.Data.Core (dans Microsoft.VisualStudio.Data.Core.dll)

[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Interface)]
public sealed class DataDefaultObjectAttribute : Attribute

Le type DataDefaultObjectAttribute expose les membres suivants.

  NomDescription
Méthode publiqueDataDefaultObjectAttributeInitialise une nouvelle instance de la classe d' DataDefaultObjectAttribute , à l'aide de l'ID de classe spécifiée
Début

  NomDescription
Propriété publiqueClassIdObtient l'ID de classe qui identifie le type par défaut de classe d'objet.
Propriété publiqueTypeIdLors de son implémentation dans une classe dérivée, obtient un identificateur unique pour Attribute. (Hérité de Attribute.)
Début

  NomDescription
Méthode publiqueEqualsInfrastructure. Retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.)
Méthode publiqueGetHashCodeRetourne le code de hachage de cette instance. (Hérité de Attribute.)
Méthode publiqueGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publiqueIsDefaultAttributeEn cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée. (Hérité de Attribute.)
Méthode publiqueMatchEn cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.)
Méthode publiqueToStringRetourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Début

  NomDescription
Implémentation d'interface expliciteMéthode privéeSystem#Runtime#InteropServices#_Attribute#GetIDsOfNamesMappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privéeSystem#Runtime#InteropServices#_Attribute#GetTypeInfoRécupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface. (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privéeSystem#Runtime#InteropServices#_Attribute#GetTypeInfoCountRécupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privéeSystem#Runtime#InteropServices#_Attribute#InvokeFournit l'accès aux propriétés et aux méthodes exposées par un objet. (Hérité de Attribute.)
Début

Lorsqu'un client de DDEX appelle le runtime de DDEX pour créer une instance d'une entité de prise en charge DDEX pour un fournisseur particulier, le fournisseur est interrogé pour déterminer s'il prend en charge l'entité, et, si tel est le cas, une instance de est créée et retournée. Si le fournisseur ne prend pas en charge l'entité, l'appel par défaut lève une exception ou retourne null, selon le chemin de code. Toutefois, dans certains cas, les propriétaires de l'entité de prise en charge DDEX peuvent avoir une implémentation par défaut de sens qu'ils souhaitent permettre aux clients lorsqu'un fournisseur de DDEX ne fournit pas sa propre implémentation, ainsi évitant la condition d'erreur.

Un exemple de ce est pratique l'entité de prise en charge d' IVsDataConnectionUIConnector . Cette entité de charge contient une seule méthode qui est appelée pour ouvrir une connexion de données à partir d'un contexte d'interface utilisateur, comme une boîte de dialogue de connexion de données. L'utilisation courante de cette entité de prise en charge est d'ajouter le comportement en outre, tel que vérifier l'existence de la cible de connexion de données et demander à créer un magasin de données si elle est introuvable. Toutefois, une valeur par défaut est judicieux d'ouvrir simplement la connexion normalement et de faire rien de spécial. Si cette implémentation par défaut est fournie, le code client est simplifié car il n'a plus besoin de traiter séparément les cas dans lesquels le fournisseur fait ou n'implémente pas l'entité de charge, ni il doit fournir le avec son propre secours, implémentation par défaut.

Les entités de prise en charge DDEX qui ont une implémentation par défaut de sens doivent inclure cet attribut sur le type qui représente l'entité de charge. L'attribut doit inclure une valeur pour la propriété d' ClassId , et la valeur doit être un GUID valide qui représente un ID de classe stocké dans l'environnement Visual Studio. Enfin, la classe identifiée par l'ID de classe doit être une classe managée qui implémente l'interface d' IVsDataDefaultObject . Lorsque les demandes du client la création d'une instance de la classe avec l'ID spécifié, le runtime de DDEX créeront cette instance si aucune implémentation de fournisseur n'est disponible. L'implémentation par défaut est ensuite passée au client.

L'attribut d' DataDefaultObjectAttribute est principalement d'adresse aux extendeurs de plateforme de DDEX, c. autrement dit., ceux qui créent des entités supplémentaires de services et prend en charge DDEX.

Le code suivant illustre la définition de l'entité de prise en charge d' IVsDataConnectionUIConnector qui déclare un attribut d'objet par défaut. La définition est suivie par l'implémentation de cet objet par défaut.

using System;
using System.Runtime.InteropServices;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Data.Services;

[DataDefaultObject("C58E1B8D-9723-40c8-8B11-9DDAF0B393BA")]
public interface IVsDataConnectionUIConnector
{
    void Connect(IVsDataConnection connection);
}

[Guid("C58E1B8D-9723-40c8-8B11-9DDAF0B393BA")]
internal class DefaultConnectionUIConnector
    : IVsDataConnectionUIConnector,
      IVsDataDefaultObject
{
    public void Connect(IVsDataConnection connection)
    {
        if (connection == null)
        {
            throw new ArgumentNullException("connection");
        }
        connection.Open();
    }
}

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Afficher: