我一直在爲此而頭痛。我感謝任何幫助。自定義個性化提供程序 - 實現FindState方法
我有一個自定義PersonalizationProvider,自定義WebPartManager和自定義WePart類。我有自定義數據表用於存儲每個用戶的個性化數據。我的任務是通過編程循環遍歷每個用戶添加的所有Web部件,以便我可以設置個性化屬性。
根據該文件,FindState方法返回一個PersonalizationStateInfoCollection對於給定PersonalizationStateQuery:
PersonalizationStateQuery pq = new PersonalizationStateQuery();
pq.PathToMatch = path;
pq.UsernameToMatch = userName;
int count;
CustomPersonalizationProvider provider= new CustomPersonalizationProvider();
PersonalizationStateInfoCollection pcol = provider.FindState(PersonalizationScope.User, pq, 0, Int32.MaxValue, out count);
PersonalizationProvider是一個抽象類,我會提供我自己在我的自定義類FindState方法實現。我花了最近6個小時試圖找到一些東西,我不知道如何實現這個方法。
PersonalizationData是blob。我可以將它反序列化爲對象數組。但沒有更多。我不知道如何序列化/反序列化到PersonalizationStateInfoCollection blob。
String BlobString = Convert.ToBase64String(UserDataBlob);
ObjectStateFormatter formatter = new ObjectStateFormatter();
Object[] DeserializedObjects = (Object[])formatter.Deserialize(BlobString);
有誰知道WebPartManager如何將UserPersonalizationData序列化到存儲在數據庫中的字節數組中嗎?