Condividi tramite


ProvideProfileAttribute Classe

Definizione

Applicare questo attributo a oggetti indipendenti usati per implementare il supporto delle impostazioni di Visual Studio di VISUALPackage.

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
Ereditarietà
ProvideProfileAttribute
Attributi

Esempio

Nell'esempio seguente, due istanze di vengono applicate a un'implementazione di VSPackage per definire le due classi come fornire il supporto delle impostazioni di ProvideProfileAttribute Visual Studio per il VSPackage implementato dalla classe MyPackage.

  1. Poiché l'implementazione della pagina denominata "DesignerOptionsPage" è derivata da DialogPage, può supportare le impostazioni di Visual Studio e le pagine Opzioni strumenti e viene registrata in entrambi i casi:

    • Implementazione di una pagina Opzioni strumenti , registrata tramite l'istanza ProvideOptionPageAttributedi . Per altre informazioni sulle pagine opzioni degli strumenti di supporto, vedere ProvideOptionPageAttribute.

    • Implementazione che supporta la persistentità dello stato delle pagine Opzioni strumenti , che è indicato dall'argomento finale del ProvideProfileAttribute costruttore.

  2. La classe denominata "PersistedDesignerState" viene registrata come fornire solo il supporto delle impostazioni di Visual Studio, il salvataggio e il recupero di informazioni sullo stato rimanenti del PACCHETTO VSPackage denominato "MyPackage" implementando 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  
}  

Commenti

Note per i chiamanti

Applicare l'attributo ProvideProfileAttribute alle classi che implementano un VSPackage quando è presente una classe che implementa le funzionalità delle impostazioni di Visual Studio per VSPackage, consentendogli di salvare e recuperare le informazioni sullo stato di VSPackage.

Nota

Le classi che IProfileManagerimplementano , devono anche implementare IComponent, che possono essere eseguite derivando la classe da Component.

Contesto attributo

Si applica a VSPackage che usano il meccanismo delle impostazioni di Visual Studio tramite classi che implementano le IProfileManager interfacce o DialogPage .
Ripetibile
Attributi richiesti DefaultRegistryRootAttribute, Nota Se la classe che implementa le impostazioni di Visual Studio fornisce anche una pagina Opzioni strumenti , ProvideOptionPageAttribute è necessaria anche.
Attributi non validi Nessuno

Note per gli implementatori

Questo attributo viene usato solo per scopi di registrazione e non influisce sul comportamento del runtime.

ProvideProfileAttribute registra una classe che implementa IProfileManager o DialogPage fornisce supporto per rendere persistente la parte o lo stato di VSPackage tramite il meccanismo delle impostazioni di Visual Studio. Le informazioni sullo stato mantenute dalla classe di implementazione vengono definite categoria di impostazioni di Visual Studio e la relativa voce di definizione nel Registro di sistema viene definita punto impostazioni personalizzate.

Quando un utente seleziona il comando Importa/Esporta impostazioni nel menu Strumenti per salvare le impostazioni di Visual Studio, le classi registrate dall'IDE ProvideProfileAttribute vengono create dall'IDE e usate per salvare le impostazioni.

A causa di questo:

  • Il supporto delle impostazioni di Visual Studio deve essere implementato nel proprio oggetto e non in VSPackage stesso.

  • Una classe che implementa le impostazioni di Visual Studio può supportare una sola categoria di impostazioni di Visual Studio, come definito nel punto impostazioni personalizzate.

Tuttavia, un singolo VSPackage può supportare diverse categorie di impostazioni di Visual Studio, come definito più punti impostazioni personalizzati, purché:

  • Ogni categoria di impostazioni di Visual Studio viene implementata in una classe separata.

  • Ogni classe che implementa le impostazioni di Visual Studio viene registrata come supporto di VSPackage tramite la propria istanza di ProvideProfileAttribute.

    Nota

    Ciò è diverso dalle implementazioni basate su COM in cui una classe che implementa le impostazioni di Visual Studio può supportare più punti impostazioni personalizzate.

Istanza di ProvideProfileAttribute:

  • Identifica in modo univoco la categoria delle impostazioni di Visual Studio del punto impostazioni personalizzate con il GUID ottenuto dalla Type classe che implementa le impostazioni di Visual Studio.

  • Imposta il nome della categoria delle impostazioni di Visual Studio, sia il nome canonico, non localizzato usato nelle voci del Registro di sistema e le relative risorse nome localizzate.

  • Indica se le impostazioni di ProvideProfileAttribute Visual Studio che supportano l'implementazione della classe supportano una pagina Opzioni strumenti (per altre informazioni sulla pagina Opzioni strumenti di supporto, vedere Pagine opzioni).

Per altre informazioni sulla creazione e l'applicazione di istanze di ProvideProfileAttribute, vedere l'esempio seguente e ProvideProfileAttribute.

Costruttori

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

Inizializza una nuova istanza di ProvideProfileAttribute.

Proprietà

AlternateParent

Ottiene o imposta il nome di una categoria diversa nel profilo.

CategoryName

Ottiene il nome non localizzato canonico della categoria delle impostazioni di Visual Studio.

CategoryResourceID

Ottiene l'ID risorsa nome per una categoria di impostazioni di Visual Studio.

DescriptionResourceID

Ottiene l'ID di risorsa localizzato della descrizione di questa pagina del profilo.

GroupName

Ottiene il nome non localizzato del gruppo.

GroupResourceID

Ottiene o imposta l'ID di risorsa localizzato del gruppo a cui appartiene questa pagina.

IsToolsOptionPage

Ottiene se si tratta anche di una pagina Opzioni strumenti.

MigrationType

Imposta l'azione di migrazione da eseguire per questa categoria.

ObjectName

Ottiene il nome canonico non localizzato di questa pagina nel profilo.

ObjectNameResourceID

Ottiene l'ID di risorsa localizzato del nome di questa pagina nel profilo.

ObjectType

Ottiene il tipo della pagina.

ResourcePackageGuid

Ottiene o imposta il GUID di un pacchetto che fornisce le stringhe di risorse.

TypeId

Eseguire l'override della proprietà TypeID per consentire alle classi derivate di RegistrationAttribute di funzionare con System.ComponentModel.TypeDescriptor.GetAttributes(...). Un attributo derivato da questo elemento dovrà eseguire l'override di questa proprietà solo se necessita di un controllo migliore sulle istanze che possono essere applicate a una classe.

(Ereditato da RegistrationAttribute)

Metodi

GetPackageRegKeyPath(Guid)

Ottiene il percorso del Registro di sistema (relativo alla radice del Registro di sistema dell'applicazione) del pacchetto VS.

(Ereditato da RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Registra questo attributo.

Unregister(RegistrationAttribute+RegistrationContext)

Rimuove la chiave dal Registro di sistema.

Si applica a