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):一個用於共享資料,另一個用於使用者資料。 如果你提供使用者名稱和路徑,就不需要控制 WebPartManager 權來存取能提供使用者名稱/路徑資訊的頁面資訊。
ResetPersonalizationBlob(WebPartManager, String, String) - 給定路徑與使用者名稱後,此方法刪除資料庫中對應的列。 如果你提供使用者名稱和路徑,就不需要控制 WebPartManager 權來存取能提供使用者名稱/路徑資訊的頁面資訊。
SavePersonalizationBlob(WebPartManager, String, String, Byte[]) - 給定路徑與使用者名稱後,此方法將所提供的 BLOB 儲存到資料庫中。 如果你提供使用者名稱和路徑,就不需要控制 WebPartManager 權來存取能提供使用者名稱/路徑資訊的頁面資訊。
在所有這些方法中,只要只提供一條路徑,就表示頁面的共享個人化資料正在作。 如果同時傳遞路徑與使用者名稱給某方法,則應對該頁面的使用者個人化資料採取行動。 在 的情況下 LoadPersonalizationBlobs(WebPartManager, String, String, Byte[], Byte[]),指定路徑的共享資料應始終被載入,若使用者名稱未 null被載入,則該路徑的使用者個人化資料也應被載入。
所有其他抽象方法僅用於管理應用程式,Web Parts 基礎架構在執行時不會使用。 關於個人化提供者實作的範例,請參見類別。SqlPersonalizationProvider
建構函式
| 名稱 | Description |
|---|---|
| PersonalizationProvider() |
初始化 PersonalizationProvider 類別的新執行個體。 |
屬性
| 名稱 | Description |
|---|---|
| ApplicationName |
當在衍生類別中被覆寫時,會取得或設定為提供者所設定的應用程式名稱。 |
| Description |
取得簡短且易記的描述,適合顯示在系統管理工具或其他使用者介面中。 (繼承來源 ProviderBase) |
| Name |
取得組態期間用來參考提供者的易記名稱。 (繼承來源 ProviderBase) |