【发布时间】:2012-10-05 04:19:56
【问题描述】:
是否可以获得应用了自定义属性的所有引用程序集(在单元测试项目中)。我在成功运行的应用程序中使用了以下代码:
var assemblies = System.Web.Compilation.BuildManager.GetReferencedAssemblies().Cast<Assembly>().Where(a => a.GetCustomAttributes(false).OfType<AssemblyCategoryAttribute>().Any()).ToList();
但是 System.Web.Compilation.BuildManager 在我的测试项目中不起作用,所以我尝试了:
Assembly.GetExecutingAssembly().GetReferencedAssemblies().Select(a => Assembly.ReflectionOnlyLoad(a.FullName).Where(a => a.GetCustomAttributes(false).OfType<AssemblyCategoryAttribute>().Any()).ToList();
但这引发了错误:
反射通过加载的类型的自定义属性是非法的 ReflectionOnlyGetType(参见 Assembly.ReflectionOnly)——使用 而是使用 CustomAttributeData。
如果有人能告诉我如何做到这一点,我将不胜感激。谢谢
【问题讨论】:
标签: c# unit-testing reflection