Compartilhar via


ProvideProfileAttribute Classe

Definição

Aplique esse atributo a objetos independentes usados para implementar o suporte a configurações do Visual Studio de um 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
Herança
ProvideProfileAttribute
Atributos

Exemplos

No exemplo abaixo, duas instâncias de ProvideProfileAttribute são aplicadas a uma implementação do VSPackage para definir as duas classes como fornecendo suporte às configurações do Visual Studio para o VSPackage implementado pela classe MyPackage.

  1. Como a implementação da página chamada "DesignerOptionsPage" é derivada de DialogPage, ela pode dar suporte a configurações do Visual Studio e páginas de Opções de Ferramentas e está registrada como fornecendo ambas:

    • Uma implementação de uma página Opções de Ferramentas , que é registrada por meio da instância ProvideOptionPageAttribute. Para obter mais informações sobre como dar suporte a páginas de Opções de Ferramentas , consulte ProvideOptionPageAttribute.

    • Uma implementação que dá suporte à persistência do estado das páginas Opções de Ferramentas , que é indicada pelo argumento final para o ProvideProfileAttribute construtor.

  2. A classe chamada "PersistedDesignerState" é registrada como fornecendo apenas suporte a configurações do Visual Studio, salvando e recuperando informações de estado restantes do VSPackage chamado "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  
}  

Comentários

Observações para chamadores

Aplique o ProvideProfileAttribute atributo a classes que implementam um VSPackage quando houver uma classe que implemente a funcionalidade de configurações do Visual Studio para o VSPackage, permitindo que ele salve e recupere informações de estado do VSPackage.

Observação

As classes que implementam IProfileManager, também devem implementar IComponent, o que pode ser feito derivando a classe de Component.

Contexto do atributo

Aplica-se a VSPackages usando o mecanismo de configurações do Visual Studio por meio de classes que implementam as IProfileManager interfaces ou DialogPage .
Repetível Yes
Atributos obrigatórios DefaultRegistryRootAttribute, Observação Se a classe que implementa as configurações do Visual Studio também fornecer uma página Opções de Ferramentas , ProvideOptionPageAttribute também será necessário.
Atributos inválidos Nenhum

Notas para implementadores

Esse atributo é usado apenas para fins de registro e não afeta o comportamento de runtime.

ProvideProfileAttributeregistra uma classe implementando ou DialogPage como fornecendo IProfileManager suporte para manter parte ou todo o estado do VSPackage por meio do mecanismo de configurações do Visual Studio. As informações de estado persistidas pela classe de implementação são conhecidas como uma categoria de configurações do Visual Studio e sua entrada de definição no registro é conhecida como um Ponto de Configurações Personalizadas.

Quando um usuário seleciona o comando Configurações de Importação/Exportação no menu Ferramentas para salvar as configurações do Visual Studio, as classes registradas por ProvideProfileAttribute são instanciadas pelo IDE e usadas para salvar as configurações.

Por causa disso:

  • O suporte a configurações do Visual Studio deve ser implementado em seu próprio objeto e não no VSPackage em si.

  • Uma classe que implementa as configurações do Visual Studio pode dar suporte a apenas uma categoria de configurações do Visual Studio, conforme definido em Ponto de Configurações Personalizadas.

No entanto, um único VSPackage pode dar suporte a várias categorias de configurações do Visual Studio, desde que:

  • Cada categoria de configurações do Visual Studio é implementada em uma classe separada.

  • Cada classe que implementa as configurações do Visual Studio é registrada como compatível com o VSPackage por sua própria instância do ProvideProfileAttribute.

    Observação

    Isso difere das implementações baseadas em COM em que uma classe que implementa as configurações do Visual Studio pode dar suporte a vários Pontos de Configurações Personalizadas.

Uma instância de ProvideProfileAttribute:

  • Identifica exclusivamente uma categoria de configurações do Visual Studio do Ponto de Configurações Personalizadas com o GUID obtido do Type da classe que implementa as configurações do Visual Studio.

  • Define o nome de uma categoria de configurações do Visual Studio, seu nome canônico e não localizado usado em entradas do Registro e seus recursos de nome localizado.

  • Indica se as configurações do Visual Studio que dão suporte à implementação da classe dão suporte a uma página Opções de ProvideProfileAttributeFerramentas (para obter mais informações sobre como dar suporte às Opções de Ferramentas , consulte Páginas de Opções).

Para obter mais informações sobre como criar e aplicar instâncias do ProvideProfileAttribute, consulte o exemplo abaixo e ProvideProfileAttribute.

Construtores

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

Inicializa uma nova instância de ProvideProfileAttribute.

Propriedades

AlternateParent

Obtém ou define o nome de uma categoria diferente no perfil.

CategoryName

Obtém o nome não localizado canônico da categoria de configurações do Visual Studio.

CategoryResourceID

Obtém a ID do recurso de nome para uma categoria de configurações do Visual Studio.

DescriptionResourceID

Obtém a ID do recurso localizado da descrição desta página do perfil.

GroupName

Obtém o nome não localizado desse grupo.

GroupResourceID

Obtém ou define a ID do recurso localizado do grupo ao qual esta página pertence.

IsToolsOptionPage

Obtém se essa também é uma página Opções de Ferramentas.

MigrationType

Define a ação de migração a ser tomada para essa categoria.

ObjectName

Obtém o nome não localizado canônico desta página no perfil.

ObjectNameResourceID

Obtém a ID do recurso localizado do nome desta página no perfil.

ObjectType

Obtém o tipo da página.

ResourcePackageGuid

Obtém ou define o GUID de um pacote que fornece as cadeias de caracteres de recurso.

TypeId

Substitua a propriedade TypeID para permitir que as classes derivadas de RegistrationAttribute funcionem com System.ComponentModel.TypeDescriptor.GetAttributes(...). Um atributo derivado deste terá que substituir essa propriedade somente se precisar de um controle melhor sobre as instâncias que podem ser aplicadas a uma classe.

(Herdado de RegistrationAttribute)

Métodos

GetPackageRegKeyPath(Guid)

Obtém o caminho do Registro (em relação à raiz do registro do aplicativo) do VSPackage.

(Herdado de RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Registra esse atributo.

Unregister(RegistrationAttribute+RegistrationContext)

Remove a chave do registro.

Aplica-se a