ProvideProfileAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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
.
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.
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.
ProvideProfileAttribute
registra 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
ProvideProfileAttribute
Ferramentas (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. |