使用IList <t> </t>的NHibernate和XML序列化

时间:2010-01-27 16:26:40

标签: .net xml nhibernate generics xml-serialization

我最近开始使用NHibernate,总的来说很喜欢它。

直到遇到需要序列化为XML并返回的问题。

我有一个有多对多关系的类,所以在父类中有一个IList来保存子对象列表。

Class parentClass{
  IList<childClass> childList;

  string varA;
  string varB;
}

我需要能够将其序列化为XML并返回,但显然IList阻止我这样做,因为NHibernate想要控制IList的具体实现,在这种情况下使用Bag。

理想情况下,我希望避免使用单独的DTO来替换列表,因为我使用NHibernate的主要动机是能够将它与POCO一起使用,而不必为它制作一个讨厌的框架。

我知道能够使用ISerializable控制序列化过程,但是这似乎也没有首先使用NHibernate来降低复杂性。

此外,XML需要保持“简单”,因为它用于与第三方互操作。

解决此约束的最佳方法是什么?

谢谢!