是否可以将BindingFlags
用于具有属性的方法?我确实在BindingFlags
查看了msdn并且没有显示任何内容。
这是我的一个方法的样子:
[TestMethod()
,TestCategory("ActionCol")
,TestCategory("DataDriven")
,DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", @"|DataDirectory|\ActionCol\actionCol.csv", "actionCol#csv", DataAccessMethod.Sequential)
,DeploymentItem(@"..\ActionCol\actionCol.csv")]
public void ActionCol_Insert_LeftGrid(){}
我使用反射将所有我的void方法添加到列表框中,但我只想添加具有此属性的方法..
这就是我使用BindingFlags
的方式:
methArr = e.myType.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
其中methArr
是MethodInfo
- 实例
答案 0 :(得分:2)
在这种情况下不使用绑定标志。
相反,您必须做的是枚举给定类型的方法,并评估方法是否使用特定属性进行修饰。
以下代码将使用Linq查找使用myType
属性修饰的TestMethod
的所有方法:
var methArr =
e.myType.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
.Where(method => method.GetCustomAttributes(typeof (TestMethodAttribute), false).Any());