2

是否可以使用BindingFlags具有属性的 for 方法?我确实查看了msdn,BindingFlags但没有任何显示。这就是我的一种方法的样子:

[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);

-instancemethArr在哪里MethodInfo

4

1 回答 1

3

在这种情况下不使用绑定标志。

相反,您必须做的是枚举给定类型的方法并评估方法是否用特定属性修饰。

以下代码将使用 Linq查找myType使用该属性修饰的所有方法:TestMethod

var methArr =
    e.myType.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
        .Where(method => method.GetCustomAttributes(typeof (TestMethodAttribute), false).Any());
于 2014-08-19T11:20:53.170 回答