ProvideProfileAttribute, classe
Appliquez-vous cet attribut aux objets indépendants utilisés pour implémenter la prise en charge de paramètres de Visual Studio d'un VSPackage.
Hiérarchie d'héritage
System.Object
System.Attribute
Microsoft.VisualStudio.Shell.RegistrationAttribute
Microsoft.VisualStudio.Shell.ProvideProfileAttribute
Espace de noms : Microsoft.VisualStudio.Shell
Assembly : Microsoft.VisualStudio.Shell.11.0 (dans Microsoft.VisualStudio.Shell.11.0.dll)
Syntaxe
'Déclaration
<AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple := True, Inherited := True)> _
Public NotInheritable Class ProvideProfileAttribute _
Inherits RegistrationAttribute
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class ProvideProfileAttribute : RegistrationAttribute
Le type ProvideProfileAttribute expose les membres suivants.
Constructeurs
Nom | Description | |
---|---|---|
ProvideProfileAttribute | Initialise une nouvelle instance d'ProvideProfileAttribute. |
Début
Propriétés
Nom | Description | |
---|---|---|
AlternateParent | Obtient ou définit le nom d'une catégorie différente dans le profil. | |
CategoryName | Obtient le nom non localisée canonique de la catégorie de paramètres de Visual Studio. | |
CategoryResourceID | Obtient l'ID de ressource de nom pour une catégorie de paramètres de Visual Studio. | |
DescriptionResourceID | Obtient l'ID de ressource localisé de la description de cette page du profil. | |
GroupName | Obtient le nom non localisée de ce groupe. | |
GroupResourceID | Obtient ou définit l'ID de ressource localisé du groupe auquel cette page appartient. | |
IsToolsOptionPage | Obtient une valeur indiquant si c'est également une page de Outils Options. | |
MigrationType | Définit l'action de transfert de prendre pour cette catégorie. | |
ObjectName | Obtient le nom non localisée canonique de cette page dans le profil. | |
ObjectNameResourceID | Obtient l'ID de ressource localisé du nom de cette page dans le profil. | |
ObjectType | Obtient le type de la page. | |
ResourcePackageGuid | Obtient ou définit GUID d'un package fournissant les chaînes de ressource. | |
TypeId | Obtient l'instance actuel de cet attribut. (Hérité de RegistrationAttribute.) |
Début
Méthodes
Nom | Description | |
---|---|---|
Equals | Infrastructure. Retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.) | |
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) | |
GetHashCode | Retourne le code de hachage de cette instance. (Hérité de Attribute.) | |
GetPackageRegKeyPath | Obtient le chemin d'accès au Registre (par rapport à la racine de Registre de l'application) du VSPackage. (Hérité de RegistrationAttribute.) | |
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.) | |
MemberwiseClone | Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.) | |
Register | Enregistre cet attribut. (Substitue RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext).) | |
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) | |
Unregister | Supprime la clé du Registre. (Substitue RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext).) |
Début
Implémentations d'interface explicite
Nom | Description | |
---|---|---|
_Attribute.GetIDsOfNames | Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute.) | |
_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.) | |
_Attribute.GetTypeInfoCount | Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute.) | |
_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
Remarques
Remarques pour des appelants
Appliquez-vous l'attribut d'ProvideProfileAttribute aux classes implémentant un VSPackage lorsqu'il existe une classe qui implémente la fonctionnalité de paramètres de Visual Studio pour le VSPackage, lui permettant d'enregistrer et extraire les informations d'état d'un VSPackage.
[!REMARQUE]
Les classes implémentant IProfileManager, doit implémentent également IComponent, qui peut être effectuée en dérivant la classe d'Component.
Contexte d'attribut
S'applique à |
VSPackages à l'aide de le mécanisme de paramètres de Visual Studio via les classes qui implémentent les interfaces d'IProfileManager ou d'DialogPage. |
Reproductible |
Oui |
Attributs requis |
DefaultRegistryRootAttribute, Remarque si la classe implémentant des paramètres de Visual Studio fournit également une page de Outils Options, ProvideOptionPageAttribute est également requis. |
Attributs valides |
Aucun |
Remarques à l'intention des implémenteurs
Cet attribut est utilisé uniquement pour l'alignement et n'affecte pas le comportement d'exécution.
ProvideProfileAttribute enregistre une classe implémentant IProfileManager ou DialogPage comme fournissant la prise en charge pour persister la partie ou l'état de toutes les VSPackage via le mécanisme de paramètres de Visual Studio.Les informations d'état persistées par la classe implémentante est appelée d'une catégorie de paramètres de Visual Studio, et son entrée définissante dans le Registre est rencontrée comme un point de paramètres personnalisés.
Lorsqu'un utilisateur sélectionne la commande de Paramètres d'importation/exportation sur le menu d'Outils d'enregistrer des paramètres de Visual Studio, les classes enregistrées par ProvideProfileAttribute sont instanciées par IDE et utilisées pour enregistrer les paramètres.
C'est pourquoi :
la prise en charge de paramètres de Visual Studio doit être implémentée sur son propre objet et pas sur le VSPackage lui-même.
Une classe implémentant des paramètres de Visual Studio peut prendre en charge une seule catégorie de paramètres de Visual Studio comme définie au point de paramètres personnalisés.
Toutefois, un VSPackage unique peut prendre en charge plusieurs catégories de paramètres de Visual Studio en tant que plusieurs points de paramètres personnalisés définis tant que :
Chaque catégorie de paramètres de Visual Studio est implémentée dans une classe distincte.
Chaque classe implémentant des paramètres de Visual Studio est enregistrée comme prendre en charge le VSPackage par sa propre instance d'ProvideProfileAttribute.
[!REMARQUE]
Cela diffère des implémentations COM où une classe implémentant des paramètres de Visual Studio peut prendre en charge de plusieurs points de paramètres personnalisés.
Une instance d'ProvideProfileAttribute :
Identifie uniquement une catégorie de paramètres de Visual Studio de point de paramètres personnalisés avec GUID obtenu à partir de Type de la classe implémentant des paramètres de Visual Studio.
Définit le nom d'une catégorie de paramètres de Visual Studio, son nom canonique et non localisée utilisé dans les entrées du Registre et ses ressources localisées en nom.
Indique si les paramètres de Visual Studio prenant en charge l'implémentation de la classe d'ProvideProfileAttribute prennent en charge une page de Outils Options (pour plus d'informations sur prendre en charge la page de Outils Options, consultez Pages options).
Pour plus d'informations sur créer et appliquer des instances d'ProvideProfileAttribute, consultez l'exemple ci-dessous et l'ProvideProfileAttribute.
Exemples
Dans l'exemple ci-dessous, deux instances d'ProvideProfileAttribute sont appliquées à une implémentation d'un VSPackage pour définir les deux classes comme fournissant la prise en charge de paramètres de Visual Studio pour le VSPackage implémenté par la classe MyPackage.
Étant donné que l'implémentation de la page nommée « DesignerOptionsPage » est dérivée d'DialogPage, elle peut prendre en charge des paramètres de Visual Studio et des pages de Outils Options, et est enregistrée en tant que fait de fournir les deux :
Une implémentation d'une page de Outils Options, qui est enregistrée via l'instance ProvideOptionPageAttribute.Pour plus d'informations sur prendre en charge des pages de Outils Options, consultez l'ProvideOptionPageAttribute.
Une implémentation qui prend en charge persister l'état de Outils Options pagine, qui est indiqué par l'argument final au constructeur d'ProvideProfileAttribute.
La classe nommée « PersistedDesignerState » est enregistrée comme fournissant uniquement la prise en charge de paramètres de Visual Studio, enregistrant et extrayant les informations d'état restantes du VSPackage nommé « MyPackage » en implémentant IProfileManager.
using Microsoft.VisualStudio.Shell;
namespace Example
{
[DefaultRegistryRoot("Software\\Microsoft\\VisualStudio\\8.0")]
[ProvideOptionPage(typeof(DesignerOptionsPage), "MyDesigner", "OptionPage", 1000, 1001, true)]
[ProvideProfileAttribute(typeof(DesignerOptionsPage), "MyDesigner", "OptionPage", 1002, 1003, true)]
[ProvideProfileAttribute(typeof(PersistCurrentDesign), "MyDesigner","CurrentDesign", 1004, 1005, false)]
[Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")]
public class MyPackage : Package
{
//Implementation here
}
[Guid("YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY")]
internal class DesignerOptionsPage: DialogPage {
//Implementation here
}
[Guid("ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ")]
internal class PersistCurrentDesign: IProfileManager {
//Implementation here
}
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.Shell, espace de noms
Autres ressources
Paramètres utilisateur et options
Créer des pages options en utilisant les classes managées du package