【问题标题】:Do custom collections work with ServiceStack's TypeSerializer?自定义集合可以与 ServiceStack 的 TypeSerializer 一起使用吗?
【发布时间】:2012-09-07 18:22:21
【问题描述】:

我正在使用@mythz 的 ServiceStack.Text(包版本 2.9)TypeSerializer 对缓存中的深拷贝对象进行序列化和反序列化。我发现自己在反序列化时遇到了这个错误:

类型定义应以“{”开头,期望序列化类型 'MetadataCollection',得到的字符串以:[]

开头

MetadataCollection 是我们实现 IEnumerable 的自定义集合类。我查看了我的测试的序列化字符串,我的序列化器上的 Metadata 属性(类型 MetadataCollection)属性确实被序列化为:

,Metadata:[],

这对我来说似乎是正确的,因为这个集合是空的。我可以做些什么来完成这项工作吗?

【问题讨论】:

    标签: .net serialization servicestack


    【解决方案1】:

    当您看到如下错误时:

    类型定义应以“{”开头,

    这表明您的模型的形状与 JSON 不匹配。

    您能否提供一个不起作用的示例的独立失败测试?

    【讨论】:

    • 我尝试的每个测试都有效——反序列化​​器处理它而不抛出异常。我将不得不从我庞大的代码开始并对其进行精简。
    • 看起来这是 ServiceStack 2.9 中的一个问题。我会进一步确认。
    【解决方案2】:

    这是由于 ServiceStack.Text 包版本 2.x 中的错误/缺失功能。我升级到 ServiceStack.Text 包版本 3.9.3,一切都很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-07
      相关资源
      最近更新 更多