Compartir a través de


ProvideProfileAttribute Clase

Definición

Aplique este atributo a objetos independientes usados para implementar la compatibilidad con la configuración de Visual Studio de 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
Herencia
ProvideProfileAttribute
Atributos

Ejemplos

En el ejemplo siguiente, se aplican dos instancias de ProvideProfileAttribute a una implementación de VSPackage para definir las dos clases como proporcionar compatibilidad con la configuración de Visual Studio para el VSPackage implementado por la clase MyPackage.

  1. Dado que la implementación de la página denominada "DesignerOptionsPage" se deriva de DialogPage, puede admitir la configuración de Visual Studio y las páginas Opciones de herramientas y se registra como proporcionados:

    • Implementación de una página Opciones de herramientas , que se registra a través de la instancia ProvideOptionPageAttributede . Para obtener más información sobre las páginas de opciones de herramientas auxiliares, vea ProvideOptionPageAttribute.

    • Implementación que admite la conservación del estado de las páginas Opciones de herramientas , que se indica mediante el argumento final para el ProvideProfileAttribute constructor.

  2. La clase denominada "PersistedDesignerState" se registra como proporcionar solo compatibilidad con la configuración de Visual Studio, guardar y recuperar la información de estado restante del VSPackage denominado "MyPackage" mediante la implementación IProfileManagerde .

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  
}  

Comentarios

Notas para autores de la llamada

Aplique el ProvideProfileAttribute atributo a las clases que implementan un VSPackage cuando haya una clase que implemente la funcionalidad de configuración de Visual Studio para VSPackage, lo que le permite guardar y recuperar información de estado de VSPackage.

Nota

Las clases que implementan IProfileManager, también deben implementar IComponent, que se pueden realizar derivando la clase de Component.

Contexto de atributo

Se aplica a VSPackages mediante el mecanismo de configuración de Visual Studio a través de clases que implementan las IProfileManager interfaces o DialogPage .
Reiterativo
Atributos necesarios DefaultRegistryRootAttribute, Nota Si la clase que implementa la configuración de Visual Studio también proporciona una página Opciones de herramientas , ProvideOptionPageAttribute también es necesaria.
Atributos no válidos None

Notas para los implementadores

Este atributo solo se usa con fines de registro y no afecta al comportamiento en tiempo de ejecución.

ProvideProfileAttribute registra una clase que implementa IProfileManager o DialogPage proporciona compatibilidad para conservar parte o todo el estado de VSPackage a través del mecanismo de configuración de Visual Studio. La información de estado persistente por la clase de implementación se conoce como categoría de configuración de Visual Studio y su entrada de definición en el Registro se conoce como punto de configuración personalizado.

Cuando un usuario selecciona el comando Importar/Exportar configuración en el menú Herramientas para guardar la configuración de Visual Studio, se crean instancias de las clases registradas por ProvideProfileAttribute el IDE y se usan para guardar la configuración.

Debido a esto:

  • La compatibilidad con la configuración de Visual Studio debe implementarse en su propio objeto y no en el propio VSPackage.

  • Una clase que implementa la configuración de Visual Studio solo puede admitir una categoría de configuración de Visual Studio tal como se define en punto de configuración personalizada.

Sin embargo, un único VSPackage puede admitir varias categorías de configuración de Visual Studio, tal como se definen varios puntos de configuración personalizados, siempre y cuando:

  • Cada categoría de configuración de Visual Studio se implementa en una clase independiente.

  • Cada clase que implementa la configuración de Visual Studio se registra como compatible con VSPackage por su propia instancia de ProvideProfileAttribute.

    Nota

    Esto difiere de las implementaciones basadas en COM en las que una clase que implementa la configuración de Visual Studio puede admitir varios puntos de configuración personalizados.

Instancia de ProvideProfileAttribute:

  • Identifica de forma única la categoría de configuración de Visual Studio de un punto de configuración personalizado con el GUID obtenido de la Type clase que implementa la configuración de Visual Studio.

  • Establece el nombre de una categoría de configuración de Visual Studio, tanto su nombre canónico y no localizado que se usa en las entradas del Registro y sus recursos de nombre localizados.

  • Indica si la configuración de Visual Studio que admite la implementación de la clase admite una página Opciones de ProvideProfileAttributeherramientas (para obtener más información sobre la página Opciones de herramientas auxiliares, vea Páginas de opciones).

Para obtener más información sobre cómo crear y aplicar instancias de ProvideProfileAttribute, vea el ejemplo siguiente y ProvideProfileAttribute.

Constructores

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

Inicializa una nueva instancia de ProvideProfileAttribute.

Propiedades

AlternateParent

Obtiene o establece el nombre de una categoría diferente del perfil.

CategoryName

Obtiene el nombre canónico no localizado de la categoría de configuración de Visual Studio.

CategoryResourceID

Obtiene el identificador de recurso de nombre para una categoría de configuración de Visual Studio.

DescriptionResourceID

Obtiene el identificador de recurso traducido de la descripción de esta página del perfil.

GroupName

Obtiene el nombre no traducido de este grupo.

GroupResourceID

Obtiene o establece el identificador de recurso adaptado del grupo al que esta página pertenece.

IsToolsOptionPage

Obtiene si también se trata de una página Opciones de herramientas.

MigrationType

Establece la acción de migración que se realizará para esta categoría.

ObjectName

Obtiene el nombre no traducido canónico de esta página en el perfil.

ObjectNameResourceID

Obtiene el identificador de recurso traducido del nombre de esta página del perfil.

ObjectType

Obtiene el tipo de la página.

ResourcePackageGuid

Obtiene o establece el GUID de un paquete que proporciona las cadenas de recursos.

TypeId

Invalide la propiedad TypeID para permitir que las clases derivadas RegistrationAttribute funcionen con System.ComponentModel.TypeDescriptor.GetAttributes(...). Un atributo derivado de este tendrá que invalidar esta propiedad solo si necesita un mejor control en las instancias que se pueden aplicar a una clase.

(Heredado de RegistrationAttribute)

Métodos

GetPackageRegKeyPath(Guid)

Obtiene la ruta del Registro (en relación con la raíz del Registro de la aplicación) del Paquete VSPackage.

(Heredado de RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Registra este atributo.

Unregister(RegistrationAttribute+RegistrationContext)

Quita la clave del Registro.

Se aplica a