使用PhoneApplicationService.Current.State保存集合

时间:2012-04-19 19:00:45

标签: c# windows-phone-7 silverlight-4.0

我正试图在导航离开我的应用程序时暂时保存一个存储诊断日志的集合 - 我查看了其他示例代码,它看起来非常基本,如下所示:

保存:

PhoneApplicationService.Current.State["DiagnosticLog"] = DiagnosticLog;

装载:

if (PhoneApplicationService.Current.State.ContainsKey("DiagnosticLog"))
  DiagnosticLog = (ObservableCollection<DiagnosticLogEntry>)
    PhoneApplicationService.Current.State["DiagnosticLog"];

但是我收到了这个错误:

  

类型的第一次机会异常   发生'System.Runtime.Serialization.InvalidDataContractException'   在System.Runtime.Serialization.dll

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

通常,当发生这种情况时,这意味着您的Diagnostic类(或其中包含的类之一)上没有默认的公共构造函数。