ProvideProfileAttribute Класс

Определение

Примените этот атрибут к независимым объектам, используемым для реализации поддержки параметров Visual Studio в 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
Наследование
ProvideProfileAttribute
Атрибуты

Примеры

В приведенном ниже примере два экземпляра ProvideProfileAttribute применяются к реализации VSPackage, чтобы определить два класса как предоставляющие поддержку параметров Visual Studio для VSPackage, реализованного классом MyPackage.

  1. Так как реализация страницы с именем "DesignerOptionsPage" является производным от DialogPage, она может поддерживать параметры Visual Studio и страницы параметров инструментов и регистрируется как предоставляющая оба:

    • Реализация страницы параметров инструментов , которая регистрируется с помощью экземпляра ProvideOptionPageAttribute. Дополнительные сведения о поддержке страниц параметров инструментов см. в разделе ProvideOptionPageAttribute.

    • Реализация, поддерживающая сохранение состояния страниц "Параметры инструментов" , которое указывается последним аргументом конструктора ProvideProfileAttribute .

  2. Класс с именем PersistedDesignerState зарегистрирован как предоставляющий только поддержку параметров Visual Studio, сохранение и получение оставшихся сведений о состоянии пакета VSPackage с именем MyPackage путем реализации 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  
}  

Комментарии

Примечания для вызывающих абонентов

ProvideProfileAttribute Примените атрибут к классам, реализующим VSPackage, если существует класс, который реализует функциональные возможности параметров Visual Studio для VSPackage, позволяя ему сохранять и извлекать сведения о состоянии VSPackage.

Примечание

Классы, реализующие IProfileManager, также должны реализовывать IComponent, что можно сделать, наследуя класс от Component.

Контекст атрибута

Применяется к Пакеты VSPackage, использующие механизм параметров Visual Studio через классы, реализующие IProfileManager интерфейсы или DialogPage .
Повторяемый Да
Требуемые атрибуты DefaultRegistryRootAttribute, примечание . Если класс, реализующий параметры Visual Studio, также предоставляет страницу Параметры инструментов , ProvideOptionPageAttribute также является обязательным.
Недопустимые атрибуты None

Примечания для разработчиков

Этот атрибут используется только для регистрации и не влияет на поведение среды выполнения.

ProvideProfileAttribute регистрирует класс, реализующий IProfileManager или DialogPage обеспечивающий поддержку сохранения части или всего состояния VSPackage с помощью механизма параметров Visual Studio. Сведения о состоянии, сохраненные реализующим классом, называются категорией параметров Visual Studio, а ее определяющая запись в реестре называется пользовательской точкой параметров.

Когда пользователь выбирает команду Импорт и экспорт параметров в меню Сервис , чтобы сохранить параметры Visual Studio, классы, зарегистрированные ProvideProfileAttribute в , создаются интегрированной среде разработки и используются для сохранения параметров.

Из-за этого:

  • Поддержка параметров Visual Studio должна быть реализована в отдельном объекте, а не в самом пакете VSPackage.

  • Класс, реализующий параметры Visual Studio, может поддерживать только одну категорию параметров Visual Studio, как определено в разделе Точка пользовательских параметров.

Однако один пакет VSPackage может поддерживать несколько категорий параметров Visual Studio, как определено несколько настраиваемых точек параметров, если:

  • Каждая категория параметров Visual Studio реализуется в отдельном классе.

  • Каждый класс, реализующий параметры Visual Studio, регистрируется как поддерживающий VSPackage собственным экземпляром ProvideProfileAttribute.

    Примечание

    Это отличается от реализаций на основе COM, где класс, реализующий параметры Visual Studio, может поддерживать несколько точек пользовательских параметров.

Экземпляр :ProvideProfileAttribute

  • Уникально идентифицирует категорию параметров Visual Studio настраиваемой точки параметров с помощью GUID, полученного из Type класса , реализующего параметры Visual Studio.

  • Задает имя категории параметров Visual Studio, как каноническое, нелокализованное имя, используемое в записях реестра, так и локализованные ресурсы имен.

  • Указывает, поддерживает ли параметры Visual Studio, поддерживающие реализацию ProvideProfileAttribute класса , страницу "Параметры инструментов" (дополнительные сведения о поддержке страницы "Параметры инструментов " см. в разделе Страницы параметров).

Дополнительные сведения о создании и применении экземпляров ProvideProfileAttributeсм. в примере ниже и ProvideProfileAttribute.

Конструкторы

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

Инициализирует новый экземпляр ProvideProfileAttribute.

Свойства

AlternateParent

Получает или задает имя другой категории в профиле.

CategoryName

Возвращает каноническое нелокализованное имя категории параметров Visual Studio.

CategoryResourceID

Возвращает идентификатор ресурса имени для категории параметров Visual Studio.

DescriptionResourceID

Получает локализованный идентификатор ресурса описания этой страницы профиля.

GroupName

Получает нелокализованное имя данной группы.

GroupResourceID

Получает или задает локализованный идентификатор ресурса группы, которой принадлежит страница.

IsToolsOptionPage

Возвращает значение, указывая, является ли это также страницей параметров инструментов.

MigrationType

Задает действие миграции, выполняемое для данной категории.

ObjectName

Получает каноническое нелокализованное имя данной страницы в профиле.

ObjectNameResourceID

Получает локализованный идентификатор ресурса имени этой страницы профиля.

ObjectType

Получает тип страницы.

ResourcePackageGuid

Получает или задает идентификатор GUID пакета, предоставляющего строки ресурсов.

TypeId

Переопределите свойство TypeID, чтобы разрешить производным классам RegistrationAttribute работать с System.ComponentModel.TypeDescriptor.GetAttributes(...). Атрибут, производный от этого, должен переопределять это свойство только в том случае, если ему требуется более эффективное управление экземплярами, которые можно применить к классу.

(Унаследовано от RegistrationAttribute)

Методы

GetPackageRegKeyPath(Guid)

Получает путь в реестре (относительно корня реестра приложения) VSPackage.

(Унаследовано от RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Регистрирует этот атрибут.

Unregister(RegistrationAttribute+RegistrationContext)

Удаляет раздел из реестра.

Применяется к