【发布时间】:2011-10-03 09:02:31
【问题描述】:
我可以在 Windows phone 7 的独立存储中保存联系人吗?以及如何在 c# 中访问它?使用 linq to sql 或 Files or Values 保存它的最佳方法是什么?
【问题讨论】:
标签: c# windows-phone-7 isolatedstorage
我可以在 Windows phone 7 的独立存储中保存联系人吗?以及如何在 c# 中访问它?使用 linq to sql 或 Files or Values 保存它的最佳方法是什么?
【问题讨论】:
标签: c# windows-phone-7 isolatedstorage
不不不,您甚至不能在隔离存储中保存一个“Microsoft.Phone.UserData.Contact”类型的联系人对象。原因很简单:联系人对象是不可序列化的。 我自己试过这个,但没有奏效,当然。因此,您无法保存联系人列表。
我尝试了以下场景:创建了一个联系人对象,将其保存在隔离存储中,在应用程序运行时从隔离存储中读取它(仍然存在)。结果:它工作并读取了我之前填写的所有数据。
但是
当我关闭应用程序时,我试图在应用程序崩溃时检索联系人数据(我之前保存的联系人对象),并且调试器告诉我“KeyNotFoundException”,这意味着根本没有“联系人”被存储为相同的“ key”是我第一次用来存储“联系人”的。
那么,为什么应用程序可以在关闭和重新打开该应用程序之前第一次读取存储的“联系人”?它是从内存中的隔离存储对象中读取的,而不是从手机上保存的对象中读取的。
【讨论】:
是的,您可以读取联系信息(请参阅http://msdn.microsoft.com/en-us/library/hh286416(v=vs.92).aspx)并将其保存到独立存储中,就像您可以在其中保存任何其他信息一样。
保存它的“最佳”方式将取决于你想用它做什么以及你想如何访问它。
请记住,您必须使您的联系信息副本与实际数据保持同步。除非您有充分的理由保留此数据副本,否则我会避免这样做,而只是在需要时查询实际的联系人数据存储。
【讨论】: