Partager via


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
Méthode publique ProvideProfileAttribute Initialise une nouvelle instance d'ProvideProfileAttribute.

Début

Propriétés

  Nom Description
Propriété publique AlternateParent Obtient ou définit le nom d'une catégorie différente dans le profil.
Propriété publique CategoryName Obtient le nom non localisée canonique de la catégorie de paramètres de Visual Studio.
Propriété publique CategoryResourceID Obtient l'ID de ressource de nom pour une catégorie de paramètres de Visual Studio.
Propriété publique DescriptionResourceID Obtient l'ID de ressource localisé de la description de cette page du profil.
Propriété publique GroupName Obtient le nom non localisée de ce groupe.
Propriété publique GroupResourceID Obtient ou définit l'ID de ressource localisé du groupe auquel cette page appartient.
Propriété publique IsToolsOptionPage Obtient une valeur indiquant si c'est également une page de Outils Options.
Propriété publique MigrationType Définit l'action de transfert de prendre pour cette catégorie.
Propriété publique ObjectName Obtient le nom non localisée canonique de cette page dans le profil.
Propriété publique ObjectNameResourceID Obtient l'ID de ressource localisé du nom de cette page dans le profil.
Propriété publique ObjectType Obtient le type de la page.
Propriété publique ResourcePackageGuid Obtient ou définit GUID d'un package fournissant les chaînes de ressource.
Propriété publique TypeId Obtient l'instance actuel de cet attribut. (Hérité de RegistrationAttribute.)

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 protégée 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.)
Méthode publique GetHashCode Retourne le code de hachage de cette instance. (Hérité de Attribute.)
Méthode protégée GetPackageRegKeyPath Obtient le chemin d'accès au Registre (par rapport à la racine de Registre de l'application) du VSPackage. (Hérité de RegistrationAttribute.)
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 protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publique Register Enregistre cet attribut. (Substitue RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext).)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Méthode publique Unregister Supprime la clé du Registre. (Substitue RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext).)

Début

Implémentations d'interface explicite

  Nom Description
Implémentation d'interface expliciteMéthode privée _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 _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 _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 _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.

  1. É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.

  2. 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

Pages options

Paramètres utilisateur et options

Créer des pages options en utilisant les classes managées du package

Stocker les pages options personnalisées

Rendre des paramètres