微软.NET SDK中附带了一个叫 SGen.exe 的工具。该工具可以生成 XML 序列化类所用的程序集。使用该工具生成的程序集作 XML 序列化操作,可提高首次序列化的速度,并避免在硬盘生成临时文件。然而,官方的 SGen 要么就生成程序集内所有类的 XML 序列化程序集,要么就只能生成一个类的序列化程序集——这个设计实在有点儿脑残,为什么不能同时生成多个类的序列化程序集呢?其实该程序只需要作些微的改动,就可以实现这个功能。
- 首先,用 Reflector 反编译导出 SGen.exe 项目代码。
- 用 Visual Studio 打开项目,修改 SGen 类中的 GenerateAssembly 方法和 Run 方法,将字符串类型的 typename 换成 List<string> 类型,以存放多个类。
- 最后,在导出类的地方稍微改改,并指定一个强名称密钥文件,重新编译程序就可以了。
时不时有人问此问题,但不知为何素未见人动手?
由于版权问题,不能在此放出重新编译的版本。请有需要的网友自行动手修改。几分钟的事情而已。