次の方法で共有


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
属性

次の例では、 の 2 つのインスタンス ProvideProfileAttribute が VSPackage 実装に適用され、 クラスによって実装される VSPackage の Visual Studio 設定のサポートを提供するように 2 つのクラス MyPackageを定義しています。

  1. "DesignerOptionsPage" という名前のページの実装は から DialogPage派生しているため、Visual Studio の設定ページと ツール オプション ページをサポートでき、次の両方を提供するように登録されます。

    • インスタンス ProvideOptionPageAttributeを介して登録される [ツール オプション] ページの実装。 [ツール オプション] ページのサポートの詳細については、「」を参照してくださいProvideOptionPageAttribute

    • [ ツール オプション] ページの状態の永続化をサポートする実装。これは、コンストラクターの ProvideProfileAttribute 最後の引数によって示されます。

  2. "PersistedDesignerState" という名前のクラスは、 を実装 IProfileManagerすることで、Visual Studio 設定のサポートのみを提供し、"MyPackage" という名前の VSPackage の残りの状態情報を保存および取得するように登録されています。

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 設定カテゴリを 1 つだけサポートできます。

ただし、1 つの VSPackage では、次の場合に限り、複数のカスタム設定ポイントが定義されている複数の Visual Studio 設定カテゴリがサポートされる場合があります。

  • 各 Visual Studio 設定カテゴリは、個別のクラスに実装されます。

  • Visual Studio 設定を実装する各クラスは、 の独自のインスタンス ProvideProfileAttributeによって VSPackage をサポートするように登録されます。

    注意

    これは、Visual Studio 設定を実装するクラスが複数のカスタム設定ポイントをサポートする場合がある COM ベースの実装とは異なります。

ProvideProfileAttributeインスタンス:

  • Visual Studio 設定を実装する クラスの から Type 取得した GUID を使用して、カスタム設定ポイントの Visual Studio 設定カテゴリを一意に識別します。

  • Visual Studio 設定カテゴリの名前を設定します。レジストリ エントリで使用される標準の非ローカライズ名と、ローカライズされた名前リソースの両方を設定します。

  • クラスの 実装 ProvideProfileAttribute をサポートする Visual Studio の設定で [ツール オプション] ページがサポートされているかどうかを示します (サポートする [ツール オプション] ページの詳細については、「 オプション ページ」を参照してください)。

のインスタンスの作成と適用の詳細については、次の ProvideProfileAttribute例と ProvideProfileAttributeを参照してください。

コンストラクター

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

ProvideProfileAttribute の新しいインスタンスを初期化します。

プロパティ

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)

レジストリからキーを削除します。

適用対象