列表缺少 .NET 本机序列化代码

本文关键字:本机 序列化 代码 NET 缺少 列表 | 更新日期: 2023-09-27 18:36:04

在Windows 10通用应用程序中,我在尝试使用该DataContractSerializer时遇到错误

类型"System.Collections.Generic.List'1[System.SByte]"不能 缺少类型的序列化序列化代码。查阅开发工具包 有关将其添加为根序列化类型的文档。

我不直接使用 DCS,而是在对服务操作的 WCF 调用上下文中使用。

我无法弄清楚哪个运行时指令可以解决此问题。 以下方法无济于事:

<Type Name="System.Collections.Generic.List{System.SByte}" 
      Dynamic="Required Public" 
      DataContractSerializer="Required Public" 
      Browse="Required All" 
      Serialize="Required All"/>

列表<T>缺少 .NET 本机序列化代码

根据文档 (https://msdn.microsoft.com/en-us/library/dn627478(v=vs.110).aspx),您的List<SByte>声明不正确。您只需指示泛型参数的数量,而不是它们的实际类型:

<Type Name="System.Collections.Generic.List`1" ... />

也许这会有所帮助:

<Namespace Name="System" Serialize="Required Public" DataContractSerializer="Required All"/>
<Namespace Name="'System.Collections.Generic" DataContractSerializer="Required All">
  <TypeInstantiation Name="List"
        Arguments="System.SByte" Serialize="Public" DataContractSerializer="Required All"/>
</Namespace>

在类似的情况下,它帮助了我。我使用了以下链接:

  • https://msdn.microsoft.com/en-us/library/dn600639(v=vs.110).aspx