0

有没有一种简单的方法来识别 Reflection.Emit 生成的程序集?在处理加载到应用程序域中的所有程序集时Assembly,动态生成的程序集实例的行为与标准程序集的行为不同。例如,访问该CodeBase属性会导致异常:

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

有没有更好的方法来识别这种情况并避免try … catch阻塞?

4

2 回答 2

1

Assembly.IsDynamic不回答您的问题吗?它可能是 .Net 4.0 中的新功能。

于 2010-09-14T20:23:02.993 回答
0

这应该有效:

if (assembly is System.Reflection.Emit.AssemblyBuilder) {
    // It's dynamic
    //...
}
于 2010-09-14T20:27:22.023 回答