【问题标题】:How to know when an object is currently deserialized from XmlSerializer如何知道对象当前何时从 XmlSerializer 反序列化
【发布时间】:2018-03-08 15:36:58
【问题描述】:

我需要知道当前何时使用 Microsoft XmlSerializer 反序列化子对象。

我不想使用在多线程中不起作用的全局指标。

我的类已经使用公共属性自动反序列化。我宁愿自己不管理序列化(如果可能,我更愿意继续使用公共属性的自动反序列化)。

我想到了两件事:

  • 使用 TLS(即线程本地存储 - 因为 XmlSerializer 是单线程的)
  • 使用调用栈

但这两种方法都远非优雅。我想知道是否没有更好的解决方案,比如实现 Deserializable 接口或其他东西?我缺少知道如何以干净的方式做到这一点的知识。

【问题讨论】:

  • 你可以实现IXMLSerializable, How To
  • 还有一个tutorial
  • 也许如果你解释一下你为什么需要这个 - 有人可以提供更好的解决方案。
  • @JSteward,使用 IXmlSerializable 确实可以让我让 xmlSerializer 正常反序列化公共属性,还让我自己上钩?我试试看!
  • @Evk,当反序列化发生时,我进行了一些验证,但由于某些字段尚未反序列化,因此出现异常。但这很难解释,而且冗长的问题往往得不到答案(或少很多)

标签: c# xml-serialization xmlserializer


【解决方案1】:

我认为 Microsoft XmlSerializer 的当前实现是不可能的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 2011-07-26
    • 2014-03-27
    • 1970-01-01
    • 2013-02-06
    相关资源
    最近更新 更多