C# 序列化时加载新程序集
我在BackgroundWorker中有一个循环,在需要时通过xml序列化保存一些东西,但每次似乎都会加载一个新程序集 'xxyyzz.Main.vshost.exe'(托管):加载了'9skkbvdl' 'xxyyzz.Main.vshost.exe'(托管):加载了'd2k4bdda'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序列化程序时动态生成的-我不会太担心它,但如果是,您可以为您的类型保留对序列化程序的引用,并在
等等。为什么会这样?我能做点什么吗?这是我应该关心的事情吗?此程序将长时间运行,无需重新启动…程序集是在创建XML序列化程序时动态生成的-我不会太担心它,但如果是,您可以为您的类型保留对序列化程序的引用,并在成功调用中使用它是否将其他参数传递到XmlSerializer中?i、 e.使用非默认构造函数?是的,它做到了这一点(因为它每次都构建一个新的序列化程序集)。。。考虑在类型初始化器中创建序列化程序并缓存它:
static readonly XmlSerializer foo;
static MyType() {
foo = new XmlSerializer(typeof(TypeToSerialize), additionalArgs);
}
然后重复使用缓存的foo
序列化程序实例。文件是visual studio调试器的一部分