ProvideProfileAttribute 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將此屬性套用至用來實作 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
兩個實例套用至 VSPackage 實作,以定義兩個類別,以提供 類別所實作之 VSPackage 的 MyPackage
Visual Studio 設定支援。
由於名為 “DesignerOptionsPage” 的頁面實作衍生自 DialogPage,因此它可以支援 Visual Studio 設定和 [工具選項 ] 頁面,並註冊為同時提供:
[ 工具選項 ] 頁面的實作,這個頁面會透過 實例 ProvideOptionPageAttribute註冊。 如您支援 [工具選項 ] 頁面的詳細資訊,請參閱 ProvideOptionPageAttribute。
支援保存 [工具選項 ] 頁面狀態的實作,其是由建構函式的最後一個自變數
ProvideProfileAttribute
表示。
名為 「PersistedDesignerState」 的類別註冊為只提供 Visual Studio 設定支援,並藉由實 IProfileManager作 來儲存和擷取名為 「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
}
備註
來電者的附註
ProvideProfileAttribute
當有一個類別實作 VSPackage 的類別時,將 屬性套用至實作 VSPackage 的類別,該類別會實作 VSPackage 的設定功能,讓其能夠儲存和擷取 VSPackage 狀態資訊。
注意
實作 的 IProfileManager類別也必須實 IComponent作 ,這可以藉由從 Component衍生類別來完成。
屬性內容
適用於 | 透過實 IProfileManager 作 或 DialogPage 介面的類別,使用 Visual Studio 設定機制的 VSPackage。 |
可重複 | Yes |
必要的屬性 | DefaultRegistryRootAttribute 注意 如果實作 Visual Studio 設定的類別也提供 [工具選項] 頁面,ProvideOptionPageAttribute則也需要 。 |
無效屬性 | 無 |
實作者的注意事項
此屬性僅用於註冊用途,且不會影響運行時間行為。
ProvideProfileAttribute
透過 Visual Studio 設定機制,註冊實作 IProfileManager 或 DialogPage 作為保存部分或所有 VSPackage 狀態的支援。 實作類別所保存的狀態資訊稱為 Visual Studio 設定類別,而登錄中的定義專案稱為自定義設定點。
當使用者在 [工具] 功能選取 [匯入/匯出設定] 命令以儲存Visual Studio 設定時,所ProvideProfileAttribute
註冊的類別會由IDE具現化,並用來儲存設定。
因此:
Visual Studio 設定支持應該在其本身的對象上實作,而不是在 VSPackage 本身實作。
實作 Visual Studio 設定的類別可能只支援自定義設定點中所定義的一個 Visual Studio 設定類別。
不過,只要下列專案,單一 VSPackage 可能會支援數個 Visual Studio 設定類別,如定義多個自定義設定點:
每個 Visual Studio 設定類別都會在不同的類別中實作。
實作 Visual Studio 設定的每個類別都會註冊為支援 VSPackage 的專屬實例
ProvideProfileAttribute
。注意
這與實作Visual Studio設定的類別可能支援多個自定義設定點的 COM 型實作不同。
的 ProvideProfileAttribute
實例:
唯一識別自定義設定點的 Visual Studio 設定類別,以及從 Type 實作 Visual Studio 設定之 類別的 取得的 GUID。
設定 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) |
從登錄中移除機碼。 |