我在BackgroundWorker中有一个循环,可以在需要时通过xml序列化保存一些东西,但这似乎每次加载一个新的程序集
'xxyyzz.Main.vshost.exe'(已管理):已加载'9skkbvdl'
'xxyyzz.Main.vshost.exe'(已管理):已加载'd2k4bdda'
等等。为什么会这样?我能做些什么吗?这是我应该关注的吗?这个程序将长时间保持运行而不重启...
答案 0 :(得分:1)
创建XML Serializer时会动态生成程序集 - 我不会太在意它,但是如果你这样,你可以保留对你的类型的序列化程序的引用,并在过度调用中使用它
答案 1 :(得分:1)
您是否将其他参数传递给XmlSerializer?即使用非默认构造函数?是的,它这样做(因为它每次构建一个新的序列化程序集)...考虑在类型初始化程序中创建序列化程序并缓存它:
static readonly XmlSerializer foo;
static MyType() {
foo = new XmlSerializer(typeof(TypeToSerialize), additionalArgs);
}
然后重复使用缓存的foo
序列化程序实例。
答案 2 :(得分:0)
“*.vshost.exe”文件是visual studio调试器的一部分。