2016-11-20 37 views
3

從這篇博客文章看來,我應該能夠將DateTime作爲ApplicationData.LocalSettings的值存儲,但我在下面爲此行指定了一個例外。DateTime在ApplicationData.LocalSettings

ApplicationData.Current.LocalSettings.Values["LastTokenRefresh"] = DateTime.UtcNow; 

https://blogs.windows.com/buildingapps/2016/05/10/getting-started-storing-app-data-locally/#bgpwEqDbEt0GClHB.97

例外:

不支持

這種類型的數據。

錯誤試圖序列的值寫入到應用數據存儲

我缺少什麼?

我目前正在將DateTime轉換爲字符串以使其工作。

回答

6

我認爲這是該博客的鏈接重定向問題,導致您誤解支持的數據類型DateTime。您可以參考官方文檔:Types of app data,本文檔中的DateTime將您鏈接到DateTime structure

的JavaScript:這類型顯示爲Date對象。 .NET:使用.NET進行編程時,此類型是隱藏的,開發人員應該使用System.DateTimeOffset結構。

C++:類似於FILETIME,但有重要的區別。

這意味着,這裏的日期支持類型是System.DateTimeOffset Structure,而不是System.DateTime Structure。所以,你可以修改你的代碼是這樣的:

ApplicationData.Current.LocalSettings.Values["LastTokenRefresh"] = DateTimeOffset.UtcNow; 

或者,您可以繼續使用ToString()方法來保存它,但是當你檢索該字符串類型值,您可能需要重建的字符串中使用它你的代碼。