我有一个xml反序列化和动态加载程序集的问题。我直接从一个zip文件加载我的程序集到一个字节数组。然后我加载这个程序集。程序集包含一个数据模型,应该使用XmlSerializer进行反序列化。 问题是我总是得到一个TypeInitializationException,如果我尝试加载我的XML。用动态加载程序集反序列化XML
例外的是以下(德国):
System.InvalidOperationException: Fehler im XML-Dokument (62,13). --->
System.TypeInitializationException: Der Typeninitialisierer für
"Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOrder" hat eine
Ausnahme verursacht. ---> System.NullReferenceException: Der Objektverweis wurde
nicht auf eine Objektinstanz festgelegt.
bei Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOrder..cctor()
如果我直接从DLL文件从zip加载我的DLL,而不是到一个字节数组中,XML可以成功地反序列化。
我发现互联网,问题可能是列表与自己的类型,但我在那里找到的解决方案并没有解决我的问题。
编辑:
我发现我不能使用泛型列表与自己的类型,如果我通过字节数组加载程序集,因为它是在其他网站上写的。我不能说,为什么我第一次没有成功使用这个解决方案,但经过第二次尝试后,它的工作原理。我已经对ArrayList做了一个解决方法,但是我对此非常不满。有没有更好的解决方案,我可以使用泛型列表?或者如果没有更好的解决方案,是否有更好的XML串行器/解串器?
当我在前些日子试图连载一个物体时,我因为没有一个没有参数的consructor而发牢骚。执行逆向操作可能会导致这里的问题? – brumScouse 2010-08-17 19:13:34