我的应用程序在启动时会生成一堆序列化程序集。在这种情况下,我收到一个错误,因为XmlSerializer无法生成其中一个序列化程序集。我可以去检查生成的临时代码文件,我发现它包含无效字符(只有一个)。这是一个临时文件的例子:
Reader.MoveToElement();
if (Reader.IsEmptyElement) {
Reader.Skip();
$ return o;
}
如您所见,“$”是无效字符。这使得csc.exe稍后失败。
什么可以使XmlSerializer生成这样的文件。
答案 0 :(得分:0)
我建议您尝试使用SGEN工具 - http://msdn.microsoft.com/en-us/library/bk3w6240(v=vs.100).aspx
该工具将获取一个程序集并生成相应的XmlSerializer程序集,您在运行时会遇到问题。
SGEN工具可能会为您提供一些其他信息,说明您遇到此问题的原因 - 编译错误和警告。
使用SGEN的另一个不错的功能是,您的第一个xml序列化将更快,因为应用程序不再需要对XML结构进行运行时编译,而只是加载XmlSerializer DLL。
希望这能让你更接近于出现问题的想法。