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 | |
---|---|---|
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 | |
---|---|---|
ClassId | Obtient l'ID de classe qui identifie le type par défaut de classe d'objet. | |
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 | |
---|---|---|
Equals | Infrastructure. Retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.) | |
GetHashCode | Retourne le code de hachage de cette instance. (Hérité de Attribute.) | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
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.) | |
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.) | |
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
Début
Implémentations d'interface explicite
Nom | Description | |
---|---|---|
System#Runtime#InteropServices#_Attribute#GetIDsOfNames | Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute.) | |
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.) | |
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.) | |
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.