2

BindingFlags属性を持つ for メソッドを使用することはできますか? 私はmsdnを調べましたがBindingFlags、何も表示されませんでした。これは私の方法の1つがどのように見えるかです:

[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ですか

4

1 に答える 1

3

この場合、バインディング フラグは使用されません。

代わりに、特定の型のメソッドを列挙し、メソッドが特定の属性で装飾されているかどうかを評価する必要があります。

次のコードは、 Linq を使用myTypeして、属性で装飾された whoのすべてのメソッドを検索します。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 に答える