在5MB程序集上运行sgen,其中包含许多具有相同名称的类

时间:2013-04-01 19:56:53

标签: c# xmlserializer sgen

我正在尝试为输出5MB dll的项目生成XmlSerializers程序集。这个项目有许多具有不同.Net命名空间但具有相同名称的类,因此sgen返回错误消息“来自命名空间的顶级XML元素'XXXX''引用不同类型XXXX和XXXX。

所以我将TypeName属性添加到每个重复类的XmlTypeAttribute中。问题是,每次运行SGEN命令时,至少需要15分钟才能显示任何反馈。

你有什么建议吗?

感谢。

1 个答案:

答案 0 :(得分:1)

sgen是一个单线程工具,它分两个阶段运行 - 首先,它生成序列化程序集的源代码,第二阶段它编译生成的程序集。

如果您将类分离并编译成几个程序集(等于CPU核心数),并行为每个程序集并行运行sgen,然后使用ILMerge将生成的dll合并到一个xml序列化程序中,可能会提高性能。