PersonalizationProvider 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
實作個人化提供者的基本功能。
public ref class PersonalizationProvider abstract : System::Configuration::Provider::ProviderBase
public abstract class PersonalizationProvider : System.Configuration.Provider.ProviderBase
type PersonalizationProvider = class
inherit ProviderBase
Public MustInherit Class PersonalizationProvider
Inherits ProviderBase
- 繼承
- 衍生
備註
這是定義個人化提供者所需功能的抽象基類。 個人化提供者會代表 WebPartPersonalization 實例載入和儲存個人化資料。
基類會定義許多方法的標準行為;只有特別處理基礎資料存放區的方法會標示為抽象。 這可讓開發人員撰寫自訂提供者來與特定資料存放區互動,而不需要重新實作 WebPartPersonalization 類別所使用的標準功能。
給實施者的注意事項
您可以衍生自 PersonalizationProvider ,並只針對這個類別中定義的抽象方法提供實作。 抽象方法會特別處理將資料儲存和載入實體資料存放區,以及資料存放區管理。 自訂提供者必須能夠以區分 Shared 資料與 User 資料的方式操作個人化資訊。 此外,提供者必須依頁面和應用程式分割個人化資料。
的 PersonalizationProvider 實作與 實 PersonalizationState 作緊密結合,因為某些個人化提供者方法會傳回 衍生類別的 PersonalizationState 實例。 為了簡化自訂提供者的開發, PersonalizationProvider 基類包含個人化邏輯的預設實作,以及類別直接 WebPartPersonalization 使用的序列化/還原序列化邏輯。 因此,只為了使用不同的資料存放區來撰寫自訂提供者,只需要實作下列抽象方法:
GetCountOfState(PersonalizationScope, PersonalizationStateQuery) - 這個方法必須能夠針對提供的查詢參數,計算資料庫中個人化資料的資料列數目。
LoadPersonalizationBlobs(WebPartManager, String, String, Byte[], Byte[]) - 根據路徑和使用者名稱,此方法會從資料庫載入兩個二進位大型物件 (BLOB) :一個 BLOB 用於共用資料,另一個用於使用者資料。 如果您提供使用者名稱和路徑,則不需要 WebPartManager 控制項來存取可以提供使用者名稱/路徑資訊的頁面資訊。
ResetPersonalizationBlob(WebPartManager, String, String) - 指定路徑和使用者名稱,此方法會刪除資料庫中的對應資料列。 如果您提供使用者名稱和路徑,則不需要 WebPartManager 控制項來存取可以提供使用者名稱/路徑資訊的頁面資訊。
SavePersonalizationBlob(WebPartManager, String, String, Byte[]) - 指定路徑和使用者名稱,這個方法會將提供的 BLOB 儲存至資料庫。 如果您提供使用者名稱和路徑,則不需要 WebPartManager 控制項來存取可以提供使用者名稱/路徑資訊的頁面資訊。
在所有這些方法中,如果只提供路徑,表示正在動作頁面的共用個人化資料。 如果路徑和使用者名稱都傳遞至方法,則應該處理頁面的使用者個人化資料。 LoadPersonalizationBlobs(WebPartManager, String, String, Byte[], Byte[])如果是 ,則應該一律載入指定路徑的共用資料,如果使用者名稱不是 null
,則也應該載入路徑的使用者個人化資料。
所有其他抽象方法僅供系統管理應用程式使用,而且不會在執行時間由 Web 元件基礎結構使用。 如需個人化提供者實作的範例,請參閱 類別 SqlPersonalizationProvider 。
建構函式
PersonalizationProvider() |
初始化 PersonalizationProvider 類別的新執行個體。 |
屬性
ApplicationName |
在衍生類別中覆寫時,取得或設定為提供者設定的應用程式名稱。 |
Description |
取得簡短、易讀的描述,適合顯示在管理工具或其他使用者介面 (UI) 中。 (繼承來源 ProviderBase) |
Name |
取得用來在設定期間代表提供者的易記名稱。 (繼承來源 ProviderBase) |
方法
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應