Partager via


ProvideProfileAttribute Classe

Définition

Appliquez cet attribut aux objets indépendants utilisés pour implémenter la prise en charge des paramètres Visual Studio d’un VSPackage.

public ref class ProvideProfileAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
public ref class ProvideProfileAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
public sealed class ProvideProfileAttribute : Microsoft.VisualStudio.Shell.RegistrationAttribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)>]
type ProvideProfileAttribute = class
    inherit RegistrationAttribute
Public NotInheritable Class ProvideProfileAttribute
Inherits RegistrationAttribute
Héritage
ProvideProfileAttribute
Attributs

Exemples

Dans l’exemple ci-dessous, deux instances de ProvideProfileAttribute sont appliquées à une implémentation VSPackage pour définir les deux classes comme fournissant la prise en charge des paramètres Visual Studio pour le VSPackage implémenté par la classe MyPackage.

  1. Étant donné que l’implémentation de la page nommée « DesignerOptionsPage » est dérivée de DialogPage, elle peut prendre en charge les paramètres visual Studio et les pages Options des outils , et est inscrite comme fournissant à la fois :

    • Implémentation d’une page Options d’outils, qui est inscrite via le instance ProvideOptionPageAttribute. Pour plus d’informations sur la prise en charge des pages Options des outils , consultez ProvideOptionPageAttribute.

    • Implémentation qui prend en charge la persistance de l’état des pages Options des outils , qui est indiqué par l’argument final au ProvideProfileAttribute constructeur.

  2. La classe nommée « PersistedDesignerState » est inscrite comme fournissant uniquement la prise en charge des paramètres Visual Studio, l’enregistrement et la récupération des 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  
}  

Remarques

Remarques pour les appelants

Appliquez l’attribut ProvideProfileAttribute à des classes implémentant un VSPackage lorsqu’il existe une classe qui implémente la fonctionnalité de paramètres Visual Studio pour le VSPackage, ce qui lui permet d’enregistrer et de récupérer les informations d’état VSPackage.

Notes

Les classes implémentant IProfileManager, doivent également implémenter IComponent, ce qui peut être fait en dérivant la classe à partir de Component.

Contexte d'attribut

S’applique à VSPackages utilisant le mécanisme de paramètres Visual Studio via des classes qui implémentent les IProfileManager interfaces ou DialogPage .
Renouvelable Yes
Attributs requis DefaultRegistryRootAttribute Remarque Si la classe implémentant les paramètres De Visual Studio fournit également une page Options d’outils, ProvideOptionPageAttribute est également obligatoire.
Attributs non valides None

Remarques pour les implémenteurs

Cet attribut est utilisé uniquement à des fins d’inscription et n’affecte pas le comportement du runtime.

ProvideProfileAttribute inscrit une classe qui implémente IProfileManager ou DialogPage prend en charge la persistance d’une partie ou de la totalité de l’état de VSPackage via le mécanisme de paramètres Visual Studio. Les informations d’état conservées par la classe d’implémentation sont appelées catégorie de paramètres Visual Studio, et son entrée de définition dans le Registre est appelée point de paramètres personnalisés.

Lorsqu’un utilisateur sélectionne la commande Paramètres d’importation/exportation dans le menu Outils pour enregistrer les paramètres Visual Studio, les classes inscrites par ProvideProfileAttribute sont instanciées par l’IDE et utilisées pour enregistrer les paramètres.

Pour cette raison :

  • La prise en charge des paramètres de Visual Studio doit être implémentée sur son propre objet et non sur le VSPackage lui-même.

  • Une classe implémentant des paramètres Visual Studio ne peut prendre en charge qu’une seule catégorie de paramètres Visual Studio, telle que définie dans Point de paramètres personnalisés.

Toutefois, un vsPackage unique peut prendre en charge plusieurs catégories de paramètres Visual Studio définies par plusieurs points de paramètres personnalisés, à condition que :

  • Chaque catégorie de paramètres Visual Studio est implémentée dans une classe distincte..

  • Chaque classe implémentant des paramètres Visual Studio est inscrite comme prenant en charge le VSPackage par son propre instance de ProvideProfileAttribute.

    Notes

    Cela diffère des implémentations basées sur COM où une classe implémentant des paramètres Visual Studio peut prendre en charge plusieurs points de paramètres personnalisés.

Une instance de ProvideProfileAttribute:

  • Identifie de manière unique la catégorie de paramètres Visual Studio d’un point de paramètres personnalisés avec le GUID obtenu à partir du de la Type classe implémentant les paramètres Visual Studio.

  • Définit le nom d’une catégorie de paramètres Visual Studio, à la fois son nom canonique et non localisé utilisé dans les entrées du Registre et ses ressources de nom localisé.

  • Indique si les paramètres Visual Studio qui prennent en charge l’implémentation de la classe de ProvideProfileAttribute prennent en charge une page Options des outils (pour plus d’informations sur la page Options des outils de prise en charge, consultez Pages d’options).

Pour plus d’informations sur la création et l’application d’instances de ProvideProfileAttribute, consultez l’exemple ci-dessous et ProvideProfileAttribute.

Constructeurs

ProvideProfileAttribute(Type, String, String, Int16, Int16, Boolean)

Initialise une nouvelle instance de ProvideProfileAttribute.

Propriétés

AlternateParent

Obtient ou définit le nom d'une catégorie différente dans le profil.

CategoryName

Obtient le nom canonique non localisé de la catégorie de paramètres Visual Studio.

CategoryResourceID

Obtient l’ID de ressource de nom pour une catégorie de paramètres Visual Studio.

DescriptionResourceID

Obtient l'ID de ressource localisée de la description de cette page du profil.

GroupName

Obtient le nom non localisé de ce groupe.

GroupResourceID

Obtient ou définit l'ID de ressource localisé du groupe auquel cette page appartient.

IsToolsOptionPage

Obtient si il s’agit également d’une page Options d’outils.

MigrationType

Définit l'action de migration à effectuer pour cette catégorie.

ObjectName

Obtient le nom canonique non localisé de cette page dans le profil.

ObjectNameResourceID

Obtient l'ID de ressource localisée du nom de cette page du profil.

ObjectType

Obtient le type de la page.

ResourcePackageGuid

Obtient ou définit le GUID d'un package fournissant les chaînes de ressources.

TypeId

Remplacez la propriété TypeID afin de permettre aux classes dérivées RegistrationAttribute de fonctionner avec System.ComponentModel.TypeDescriptor.GetAttributes (...). Un attribut dérivé de celui-ci doit remplacer cette propriété uniquement s’il a besoin d’un meilleur contrôle sur les instances qui peuvent être appliquées à une classe.

(Hérité de RegistrationAttribute)

Méthodes

GetPackageRegKeyPath(Guid)

Obtient le chemin d'accès au Registre (relatif à la racine de Registre de l'application) du VSPackage.

(Hérité de RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Inscrit cet attribut.

Unregister(RegistrationAttribute+RegistrationContext)

Supprime la clé du Registre.

S’applique à