如果我使用反射來檢索程序集,它將搜索程序集並將其緩存。我可以這樣說,因爲如果它找不到組件,即使將它添加到正確的位置,它也不會找到它。如果它找到該程序集並將其刪除,它仍然使用它找到並緩存的程序集。如何清除.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