XmlSerializer生成无效的临时文件并导致csc.exe失败

时间:2013-11-19 20:34:31

标签: c# xmlserializer csc

我的应用程序在启动时会生成一堆序列化程序集。在这种情况下,我收到一个错误,因为XmlSerializer无法生成其中一个序列化程序集。我可以去检查生成的临时代码文件,我发现它包含无效字符(只有一个)。这是一个临时文件的例子:

        Reader.MoveToElement();
        if (Reader.IsEmptyElement) {
            Reader.Skip();
$           return o;
        }

如您所见,“$”是无效字符。这使得csc.exe稍后失败。

什么可以使XmlSerializer生成这样的文件。

1 个答案:

答案 0 :(得分:0)

我建议您尝试使用SGEN工具 - http://msdn.microsoft.com/en-us/library/bk3w6240(v=vs.100).aspx

该工具将获取一个程序集并生成相应的XmlSerializer程序集,您在运行时会遇到问题。

SGEN工具可能会为您提供一些其他信息,说明您遇到此问题的原因 - 编译错误和警告。

使用SGEN的另一个不错的功能是,您的第一个xml序列化将更快,因为应用程序不再需要对XML结构进行运行时编译,而只是加载XmlSerializer DLL。

希望这能让你更接近于出现问题的想法。