我的单元测试在到达时失败:
var y = AppDomain.CurrentDomain
.GetAssemblies()
.Where(a => !a.GlobalAssemblyCache)
.SelectMany(a => a.GetExportedTypes()
.Where(t => t.IsClass && typeof(ITypeRenderer).IsAssignableFrom(t)))
.ToArray();
但是当我附加调试器运行测试时,它不会失败。
我想它必须做一些反射权限和所有爵士乐,任何想法吗?
例外是:
初始化方法MyUnitTestProject.UnitTest.Init抛出异常。 System.NotSupportedException:System.NotSupportedException:The 动态程序集不支持调用的成员..
异常发生在:
System.Reflection.Emit.InternalAssemblyBuilder.GetExportedTypes()
感谢。
答案 0 :(得分:3)
好吧,错误消息 说“动态程序集中不支持调用的成员”。显然,当您在调试器外部运行测试时,会导致在与运行测试的位置相同的AppDomain中创建动态程序集。
同样(希望)显然,检查IsDynamic
以排除此类程序集(与排除GAC程序集的方式相同)应避免错误。