【问题标题】:Can't get class list to deserialize [closed]无法获取类列表以反序列化 [关闭]
【发布时间】:2012-04-07 23:30:37
【问题描述】:

看来我得从头开始了

【问题讨论】:

  • 序列化后有没有改变类型定义?由于 BinaryFormatter 包含类型元数据,因此该 应该 通常可以正常工作,除非您更改了类型 - 在这种情况下,它会死得很惨。
  • 您正在隐藏异常。通过返回 null 该方法没有任何用处。这个错误到底发生在哪里?被序列化的对象如何?
  • 你能贴出 ExpenseItemRoster 的代码吗?
  • 我添加了更多细节,请记住,它是从命名空间内的主程序调用的,但单独的 .cs 文件。
  • 只是好奇:您是否真的查看了文件以确保其内容是您认为的内容?

标签: c# serialization binaryformatter


【解决方案1】:

您正在将filename 字符串写入文件。我不明白您为什么希望将其反序列化为 List<ExpenseItemRoster> 会起作用。

你可能想做的是:

  1. 去掉硬编码的文件名,改用filename
  2. List<ExpenseItemRoster> 类型的参数添加到WriteToFile() 并对其进行序列化。
  3. ReadFromFile() 的返回类型更改为List<ExpenseItemRoster>,实际上是return 反序列化列表。

【讨论】:

    【解决方案2】:

    您正在序列化一个文件名(字符串),然后您希望它返回给您一些列表?如果以后想获取列表,则需要序列化列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 2019-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多