是否可以获得应用了自定义属性的所有引用程序集(在单元测试项目中)。我在成功运行的应用程序中使用以下代码:
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。
如果有人能告诉我如何做到这一点,我将不胜感激。谢谢