2010-09-14 72 views
0

是否有一種簡單的方法來識別Reflection.Emit生成的程序集?處理加載到應用程序域中的所有程序集時,動態生成的程序集實例的行爲與標準程序集的行爲不同。例如,訪問CodeBase屬性導致的異常:識別Reflection.Emit生成的程序集

string codeBase; 
try 
{ 
    codeBase = assembly.CodeBase; 
} 
catch(NotSupportedException) 
{ 
    // assemblies generated via Reflection.Emit throw an exception when CodeBase is accessed 
    codeBase = null; 
} 

是否有更好的方法來識別這種情況,並避免try … catch塊?

回答

0

這應該工作:

if (assembly is System.Reflection.Emit.AssemblyBuilder) { 
    // It's dynamic 
    //... 
} 
0

不是Assembly.IsDynamic回答你的問題?這可能是它在.NET 4.0中的新功能。

+0

就是這樣。我的代碼在.NET 3.5環境中運行。 – 2010-09-14 21:09:38