如果我加载了.Net程序集,并且我想使用反射来查找用某些属性修饰的类(类型),例如
Assembly assy = Assembly.Load(assyPath);
var classesInAssy = assy.GetTypes();
我如何在C#中做到这一点?我到目前为止
{{1}}
但此后我才难倒。我现在知道我必须在类型上使用CustomAttibutes集合,但是我使用VS2013 Pro(包括单元测试),并且有问题的属性不是我的一个,而是MS TestClass属性。但是我似乎无法引用它在(Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)中定义的程序集,即使dll在VS2013的“添加引用”对话框中列出。我错过了什么吗?
TIA,
答案 0 :(得分:0)
Jon Skeet的回答是使用GetCustomAttributes
:
Type[] classesWithAttr = assy.GetTypes()
.Where(t => t.GetCustomAttributes(typeof(MyClassAttribute), false).Length > 0)
.ToArray();