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

RSl*_*ter 6 .net xml generics nhibernate xml-serialization

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

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

我有一个具有多对多关系的类,因此在父类中有一个IList来保存子对象列表.

Class parentClass{
  IList<childClass> childList;

  string varA;
  string varB;
}
Run Code Online (Sandbox Code Playgroud)

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

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

我所知道的能够采取与ISerializable的序列化过程的控制,但同样,这似乎否定首先使用NHibernate来降低复杂性的点.

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

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

谢谢!