C# 序列化时加载新程序集

C# 序列化时加载新程序集,c#,memory-management,assemblies,xml-serialization,C#,Memory Management,Assemblies,Xml Serialization,我在BackgroundWorker中有一个循环,在需要时通过xml序列化保存一些东西,但每次似乎都会加载一个新程序集 'xxyyzz.Main.vshost.exe'(托管):加载了'9skkbvdl' 'xxyyzz.Main.vshost.exe'(托管):加载了'd2k4bdda' 等等。为什么会这样?我能做点什么吗?这是我应该关心的事情吗?此程序将长时间运行,无需重新启动…程序集是在创建XML序列化程序时动态生成的-我不会太担心它,但如果是,您可以为您的类型保留对序列化程序的引用,并在

我在BackgroundWorker中有一个循环,在需要时通过xml序列化保存一些东西,但每次似乎都会加载一个新程序集

'xxyyzz.Main.vshost.exe'(托管):加载了'9skkbvdl'

'xxyyzz.Main.vshost.exe'(托管):加载了'd2k4bdda'


等等。为什么会这样?我能做点什么吗?这是我应该关心的事情吗?此程序将长时间运行,无需重新启动…

程序集是在创建XML序列化程序时动态生成的-我不会太担心它,但如果是,您可以为您的类型保留对序列化程序的引用,并在成功调用中使用它

是否将其他参数传递到XmlSerializer中?i、 e.使用非默认构造函数?是的,它做到了这一点(因为它每次都构建一个新的序列化程序集)。。。考虑在类型初始化器中创建序列化程序并缓存它:

static readonly XmlSerializer foo;
static MyType() {
    foo = new XmlSerializer(typeof(TypeToSerialize), additionalArgs);
}
然后重复使用缓存的
foo
序列化程序实例。

文件是visual studio调试器的一部分