Serialize()不使用Sgen生成的.XmlSerializers.dll

我的.NET 3.5库中有一个sgen步骤,在输出目录中生成一个正确的XYZ.XmlSerializers.dll。 仍然有较差的序列化性能,我发现.NET仍然在运行时调用csc。 使用进程监视器,我看到.NET正在搜索名为“XYZ.XmlSerializers.-1378521009.dll”的DLL。

为什么文件名中有’-1378521009’? 如何告诉.NET使用sgen生成的“普通”DLL?

使用Reflector稍微探讨一下,当您使用XmlSerializer(Type,string)构造函数,指定自定义命名空间时,似乎会发生这种情况。 请尝试使用XmlSerializer(Type)构造函数。