具有属性的方法的BindingFlags

时间:2014-08-19 11:12:36

标签: c# metadata bindingflags

是否可以将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);

其中methArrMethodInfo - 实例

1 个答案:

答案 0 :(得分:2)

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

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

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

var methArr =
    e.myType.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
        .Where(method => method.GetCustomAttributes(typeof (TestMethodAttribute), false).Any());