【发布时间】:2013-05-20 04:10:36
【问题描述】:
我正在尝试通过反序列化 xml 文件来加载域类。所以我在域类中使用了 System.Collections.Generic.List。但是当我尝试使用 Session 对象保存对象时,它失败并出现异常“无法转换类型为'NHibernate.Collection.Generic.PersistentGenericBag1[MyFirstMapTest.Class5]' to type 'System.Collections.Generic.List1[MyFirstMapTest.Class5]'的对象”。这个问题发布在之前的一些讨论中,答案是使用 IList 而不是 List(Unable to cast object of type NHibernate.Collection.Generic.PersistentGenericBag to List)
但是,如果我使用 IList,那么我无法将 xml 反序列化为 Domain 类。
XmlTextReader xtr = new XmlTextReader(@"C:\Temp\SampleInput.xml");
XmlSerializer serializer = new XmlSerializer(objClass5.GetType());
objClass5 = (MyFirstMapTest.Class5)serializer.Deserialize(xtr);
session.Save(objClass5);
它抛出以下错误 “无法序列化 System.Collections.Generic.IList`1[[xxxxxxxxxx, Examples, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] 类型的成员 xxxxx,因为它是一个接口。”
我尝试使用 PersistentGenericBag 而不是 List,但 PersistentGenericBag 不可序列化。所以反序列化不起作用。
我该如何解决这个问题?感谢您查看此问题。
【问题讨论】:
标签: nhibernate fluent-nhibernate fluent ilist