【问题标题】:Serialize NHibernate POCO to XML将 NHibernate POCO 序列化为 XML
【发布时间】:2012-02-21 03:22:47
【问题描述】:

我想将我的 NHibernate POCO 类序列化为 XML 以用于 XSLT 转换。我尝试使用 DataContractSerializer 但它失败了,因为它无法识别代理对象和 ISet 成员中包含的一对多映射。我应该使用 DataContractSerializer 还是有其他方法可以实现这一点?其次,是否有一个通用的 DataContractResolver 可以与代理对象、自定义类和集合一起使用?请记住,我只想序列化而不是反序列化。

【问题讨论】:

    标签: c# xml nhibernate serialization


    【解决方案1】:

    我认为你最好不要序列化你的 nHibernate POCO。
    就个人而言,我会创建一些 DTO,然后将它们序列化。
    这样做的原因是我希望完全控制我正在序列化的内容。
    如果我序列化一个 nHib POCO,我不知道我的集合属性是否已填充,如果没有,我不确定 nHib 在我不知道的情况下放在那里。

    转换为 DTO 可以让我明确决定加载(和序列化)什么以及不加载什么。

    顺便说一句-如果您正在序列化您的对象以便通过服务或其他方式发送它们,Ayende 为您提供 some harsh (and true) words :)

    【讨论】:

    • 是的,非常好的建议,但在这种情况下,我在本地服务器上使用 XSL-FO 将 XML 转换为 PDF。目前,我正在使用原生连接的 DataTables 和 DataSets,但由于我使用的是 NHibernate,所以我正在寻找替代方案。
    • @AndrewWheeler 哦,我明白了。所以 Ayende 的 cmets 不适用于您的情况。但是,我相信序列化 DTO 而不是你的 POCO 的想法仍然存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2020-10-29
    相关资源
    最近更新 更多