我正在製作一個UWP應用程序,我試圖通過序列化將用戶選擇的存儲文件保存到本地設置,並且我想要反序列化它們並在需要時再次使用它們。它將IReadOnlyList對象保存到本地設置就好,但是在反序列化它給出和異常的時候,這個方法不能返回存儲文件,因爲它沒有這個的構造器,就像這樣。我發佈了保存和加載數據的兩種方法的代碼。請看到它,幫我...UWP Json.Convert存儲文件
public static void SaveState<T>(string key, T value)//save method
{
//key is provided by me so that i can use it to load the data later.
var localSettings = ApplicationData.Current.LocalSettings;
localSettings.Values[key] = JsonConvert.SerializeObject(value);
}
public static T LoadState<T>(string key)//loading data
{
var localSettings = ApplicationData.Current.LocalSettings;
if (localSettings.Values.ContainsKey(key))//exception occurs on the below line
return JsonConvert.DeserializeObject<T>(((string)localSettings.Values[key]));
return default(T);
}
和我使用這些方法如下: -
var files = StateService.LoadState<IReadOnlyList<StorageFile>>(Playlist);
//StateService is the class which has these static methods...
注:當我試圖與在沒有數據反對一鍵加載數據本地設置,它不給任何異常,只是返回時,其應該返回IReadOnlyList的填充名單,然後它給和異常空list.but ...
你應該把你得到的例外。 – billybob
在Newtonsoft.Json.dll中發生類型爲'Newtonsoft.Json.JsonSerializationException'的異常,但未在用戶代碼中處理 附加信息:無法找到用於Windows.Storage.StorageFile類型的構造函數。一個類應該有一個默認構造函數,一個帶參數的構造函數或一個帶有JsonConstructor屬性標記的構造函數。路徑'[0] .ContentType',第1行,第16位。 如果存在此異常的處理程序,則可以安全地繼續執行程序。 –