带有属性的方法的BindingFlags
本文关键字:方法 BindingFlags 属性 | 更新日期: 2023-09-27 18:18:34
是否可以将BindingFlags
用于具有属性的方法?我确实在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);
其中methArr
为MethodInfo
-instance
在这种情况下不使用绑定标志。
相反,您必须做的是枚举给定类型的方法,并评估方法是否使用特定属性进行装饰。
下面的代码将使用Linq:
找到myType
中使用TestMethod
属性装饰的所有方法:var methArr =
e.myType.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
.Where(method => method.GetCustomAttributes(typeof (TestMethodAttribute), false).Any());