如果我使用反射来检索程序集,它将搜索程序集并将其缓存。我可以这样说,因为如果它找不到组件,即使将它添加到正确的位置,它也不会找到它。如果它找到该程序集并将其删除,它仍然使用它找到并缓存的程序集。如何清除.NET的反射缓存?
我知道我不是有这个问题只有一个:Clear .Net Reflection cache
我用得到汇编代码如下 - 我做这个调用每次(不缓存我自己):
// Try to get the assembly referenced.
Assembly reflectedAssembly;
try
{
reflectedAssembly = Assembly.Load(assembly);
}
catch (FileNotFoundException)
{
errorMessage = string.Format("Could not find assembly '{0}'", assembly);
result = null;
return false;
}
我想知道的是,如果有一种方法可以在不重新启动进程的情况下清除反射缓存。任何帮助将不胜感激。
在此先感谢!
使用'Assembly.LoadFrom'也许? – 2012-03-06 21:47:45
你传递给Assembly.Load的是什么?一个字符串?一个字节数组?一个AssemblyName实例? – Fernando 2012-03-06 22:32:06
@Fernando - 我正在传递一个字符串:“ClassLibrary1,Version = 1.0.0.0,Culture = Neutral,PublicKeyToken = d48aa85d4ceaf047” – zimdanen 2012-03-07 14:41:44