다음을 통해 공유


ProvideProfileAttribute 클래스

정의

VSPackage의 Visual Studio 설정 지원을 구현하는 데 사용되는 독립 개체에 이 특성을 적용합니다.

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 구현에 적용되어 두 클래스를 클래스 에서 구현 MyPackage하는 VSPackage에 대한 Visual Studio 설정 지원을 제공하는 것으로 정의합니다.

  1. "DesignerOptionsPage"라는 페이지의 구현은 에서 DialogPage파생되므로 Visual Studio 설정 및 도구 옵션 페이지를 지원할 수 있으며 다음을 모두 제공하는 것으로 등록됩니다.

    • instance ProvideOptionPageAttribute통해 등록된 도구 옵션 페이지의 구현입니다. 도구 옵션 페이지를 지원하는 방법에 대한 자세한 내용은 을 참조하세요ProvideOptionPageAttribute.

    • 도구 옵션 페이지의 상태를 유지하도록 지원하는 구현으로, 생성자에 대한 최종 인수로 ProvideProfileAttribute 표시됩니다.

  2. "PersistedDesignerState"라는 클래스는 를 구현 IProfileManager하여 "MyPackage"라는 VSPackage의 나머지 상태 정보를 저장하고 검색하는 Visual Studio 설정 지원만 제공하는 것으로 등록됩니다.

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  
}  

설명

호출자 참고 사항

VSPackage에 ProvideProfileAttribute 대한 Visual Studio 설정 기능을 구현하는 클래스가 있는 경우 VSPackage를 구현하는 클래스에 특성을 적용하여 VSPackage 상태 정보를 저장하고 검색할 수 있습니다.

참고

를 구현하는 IProfileManager클래스는 에서 Component클래스를 파생하여 수행할 수 있는 도 구현IComponent해야 합니다.

특성 컨텍스트

적용 대상 또는 DialogPage 인터페이스를 구현하는 클래스를 통해 Visual Studio 설정 메커니즘을 IProfileManager 사용하는 VSPackage.
반복 가능 Yes
필수 특성 DefaultRegistryRootAttribute참고 Visual Studio 설정을 구현하는 클래스에서 도구 옵션 페이지 ProvideOptionPageAttribute 도 제공하는 경우에도 필요합니다.
잘못된 특성 없음

구현자에 대한 참고 사항

이 특성은 등록 목적으로만 사용되며 런타임 동작에는 영향을 주지 않습니다.

ProvideProfileAttribute 는 또는 를 구현하는 클래스를 IProfileManagerDialogPage Visual Studio 설정 메커니즘을 통해 VSPackage 상태의 일부 또는 전체를 유지하기 위한 지원을 제공하는 것으로 등록합니다. 구현 클래스에서 유지하는 상태 정보를 Visual Studio 설정 범주라고 하며 레지스트리의 해당 정의 항목을 사용자 지정 설정 지점이라고 합니다.

사용자가 도구 메뉴에서 설정 가져오기/내보내기 명령을 선택하여 Visual Studio 설정을 저장하면 에 등록된 ProvideProfileAttribute 클래스가 IDE에 의해 인스턴스화되고 설정을 저장하는 데 사용됩니다.

이 때문에 다음을 수행합니다.

  • Visual Studio 설정 지원은 VSPackage 자체가 아닌 자체 개체에서 구현되어야 합니다.

  • Visual Studio 설정을 구현하는 클래스는 사용자 지정 설정 지점에 정의된 대로 하나의 Visual Studio 설정 범주만 지원할 수 있습니다.

그러나 단일 VSPackage는 다음과 같은 경우 여러 사용자 지정 설정 지점으로 정의된 여러 Visual Studio 설정 범주를 지원할 수 있습니다.

  • 각 Visual Studio 설정 범주는 별도의 클래스에서 구현됩니다.

  • Visual Studio 설정을 구현하는 각 클래스는 자체 instance ProvideProfileAttributeVSPackage를 지원하는 것으로 등록됩니다.

    참고

    이는 Visual Studio 설정을 구현하는 클래스가 여러 사용자 지정 설정 지점을 지원할 수 있는 COM 기반 구현과 다릅니다.

의 instance.ProvideProfileAttribute

  • Visual Studio 설정을 구현하는 클래스의 에서 Type 가져온 GUID를 사용하여 사용자 지정 설정 지점의 Visual Studio 설정 범주를 고유하게 식별합니다.

  • Visual Studio 설정 범주의 이름(레지스트리 항목에 사용되는 정식, 비로컬화된 이름 및 지역화된 이름 리소스)을 설정합니다.

  • 클래스의 구현 ProvideProfileAttribute 을 지원하는 Visual Studio 설정이 도구 옵션 페이지를 지원하는지 나타냅니다( 도구 옵션 지원 페이지에 대한 자세한 내용은 옵션 페이지를 참조하세요).

인스턴스 ProvideProfileAttribute를 만들고 적용하는 방법에 대한 자세한 내용은 아래 및 ProvideProfileAttribute예제를 참조하세요.

생성자

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

ProvideProfileAttribute의 새 instance 초기화합니다.

속성

AlternateParent

프로필에서 다른 범주의 이름을 가져오거나 설정합니다.

CategoryName

Visual Studio 설정 범주의 정식 비로컬화된 이름을 가져옵니다.

CategoryResourceID

Visual Studio 설정 범주의 이름 리소스 ID를 가져옵니다.

DescriptionResourceID

프로필의 이 페이지에 대한 설명의 지역화된 리소스 ID를 가져옵니다.

GroupName

이 그룹의 비로컬화된 이름을 가져옵니다.

GroupResourceID

이 페이지가 속한 그룹의 지역화된 리소스 ID를 가져오거나 설정합니다.

IsToolsOptionPage

이 페이지가 도구 옵션 페이지인지 여부를 가져옵니다.

MigrationType

이 범주에 대해 수행할 마이그레이션 작업을 설정합니다.

ObjectName

프로필에서 이 페이지의 정식 비로컬화된 이름을 가져옵니다.

ObjectNameResourceID

프로필에서 이 페이지의 이름의 지역화된 리소스 ID를 가져옵니다.

ObjectType

페이지의 형식을 가져옵니다.

ResourcePackageGuid

리소스 문자열을 제공하는 패키지의 GUID를 가져오거나 설정합니다.

TypeId

RegistrationAttribute 파생 클래스가 System.ComponentModel.TypeDescriptor.GetAttributes(...)와 함께 작동하도록 하려면 TypeID 속성을 재정의합니다. 이 속성에서 파생된 특성은 클래스에 적용할 수 있는 인스턴스에 대한 더 나은 제어가 필요한 경우에만 이 속성을 재정의해야 합니다.

(다음에서 상속됨 RegistrationAttribute)

메서드

GetPackageRegKeyPath(Guid)

VSPackage의 레지스트리 경로(애플리케이션의 레지스트리 루트를 기준으로)를 가져옵니다.

(다음에서 상속됨 RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

이 특성을 등록합니다.

Unregister(RegistrationAttribute+RegistrationContext)

레지스트리에서 키를 제거합니다.

적용 대상