【问题标题】:Deserialize altered object反序列化改变的对象
【发布时间】:2023-04-02 15:54:02
【问题描述】:

我需要在创建/更新/删除期间为在数据库中存储一个序列化 [使用二进制序列化]对象审计 目的。 另一个要求是能够在任何时间点查看 2 个审计日志条目之间的差异,即能够反序列化 相同类型的 2 个对象并比较它们属性值。

现在这一切都很酷,直到你发布一个新版本,在这个版本中这个被审计的对象发生了变化——比如你已经删除了几个属性并添加了一个新属性:现在尝试反序列化从旧的审核日志条目,它会失败

我们的网络服务器管理员非常严格,不允许我们在 GAC 中安装任何东西,所以问题是假设您只安装了最新的 Assemly 版本,如何解决这个问题?

【问题讨论】:

  • 有什么理由不想使用 XmlSerialization ?用于审计的二进制序列化简直是地狱
  • 我认为是的。这取决于您的用例,但您将如何处理审计数据?给一些技术人员看?不需要有一个对象来反序列化它。需要在网页上打印好?使用 xslt。显示对对象所做的更改?使用通用方法来区分您的 xml 文档。

标签: c# .net serialization audit


【解决方案1】:

对于新字段,您有 OptionalFieldAttribute

除此之外,我想你会喜欢 MSDN 上的 article

【讨论】:

  • 我会接受,尽管这对于刚开始的新项目来说并不是一个理想的解决方案。
猜你喜欢
  • 2012-11-14
  • 1970-01-01
  • 1970-01-01
  • 2016-08-21
  • 2021-12-08
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多