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.

Hiérarchie d'héritage

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)

Syntaxe

'Déclaration
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Interface)> _
Public NotInheritable Class DataDefaultObjectAttribute _
    Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Interface)]
public sealed class DataDefaultObjectAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Interface)]
public ref class DataDefaultObjectAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Interface)>]
type DataDefaultObjectAttribute =  
    class 
        inherit Attribute 
    end
public final class DataDefaultObjectAttribute extends Attribute

Le type DataDefaultObjectAttribute expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique DataDefaultObjectAttribute Initialise une nouvelle instance de la classe d' DataDefaultObjectAttribute , à l'aide de l'ID de classe spécifiée

Début

Propriétés

  Nom Description
Propriété publique ClassId Obtient l'ID de classe qui identifie le type par défaut de classe d'objet.
Propriété publique TypeId Lors de son implémentation dans une classe dérivée, obtient un identificateur unique pour Attribute. (Hérité de Attribute.)

Début

Méthodes

  Nom Description
Méthode publique Equals Infrastructure. Retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.)
Méthode publique GetHashCode Retourne le code de hachage de cette instance. (Hérité de Attribute.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique IsDefaultAttribute En 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 publique Match En 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 publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)

Début

Implémentations d'interface explicite

  Nom Description
Implémentation d'interface expliciteMéthode privée System#Runtime#InteropServices#_Attribute#GetIDsOfNames Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée System#Runtime#InteropServices#_Attribute#GetTypeInfo Ré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ée System#Runtime#InteropServices#_Attribute#GetTypeInfoCount Ré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ée System#Runtime#InteropServices#_Attribute#Invoke Fournit l'accès aux propriétés et aux méthodes exposées par un objet. (Hérité de Attribute.)

Début

Notes

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 nullune référence null (Nothing en Visual Basic), 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.

Exemples

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();
    }
}

Sécurité des threads

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.

Voir aussi

Référence

Microsoft.VisualStudio.Data.Core, espace de noms