从这篇博客文章来看,似乎我应该能够存储DateTime
一个ApplicationData.LocalSettings
值作为一个值,但是我在这行中得到了例外.
ApplicationData.Current.LocalSettings.Values["LastTokenRefresh"] = DateTime.UtcNow;
Run Code Online (Sandbox Code Playgroud)
例外:
不支持此类型的数据.
尝试序列化要写入应用程序数据存储的值时出错
我错过了什么?
我正在转换DateTime
为字符串以使其工作.
我认为这是该博客的链接重定向问题,导致您对支持的数据类型的误解DateTime
.您可以参考官方文档:应用程序的数据类型,在DateTime
这个文件中会链接你的DateTime结构:
JavaScript:此类型显示为Date对象.
.NET:使用.NET编程时,此类型是隐藏的,开发人员应使用System.DateTimeOffset结构.
C++:类似于FILETIME,但有重要的区别.
这意味着,此处支持的日期类型是System.DateTimeOffset Structure,而不是System.DateTime Structure.所以,您可以像这样修改代码:
ApplicationData.Current.LocalSettings.Values["LastTokenRefresh"] = DateTimeOffset.UtcNow;
Run Code Online (Sandbox Code Playgroud)
或者您可以继续使用您的ToString()
方法来保存它,但是当您检索此字符串类型值时,您可能需要重新构建字符串以在代码中使用它.