2

私のソリューションでは、以下の形式のメソッドを含むdllがあります

    [TestMethod]
    [TestProperty("Priority", "P0")]
    [TestProperty("Owner", "vbnmg")]
    [TestProperty("Title", "Verify the log accessible")]
    [TestProperty("ID", "1")]
    public void LogAccesiblityTest()
    {
    //Test Code
    }

一部のメソッドには異なる優先度、所有者、ID、およびタイトルがあります

dll 名と検索条件 (優先順位、所有者、ID、およびタイトル) を指定することで、指定された優先度グループまたは所有者グループなどにあるメソッド名を取得できます。

使用されているメソッド名とパラメーターの詳細情報を取得するコードがありますが、テスト プロパティから情報を取得する方法がわかりません。

誰かがこれを行う方法を提案してください。

4

2 に答える 2

1

を探しているだけのようですMethodInfo.GetCustomAttributes。あなたのフォーマットを考えると、私はおそらく次のように書くでしょう:

public static Dictionary<string, string> GetProperties(MethodInfo method)
{
    return method.GetCustomAttributes(typeof(TestPropertyAttribute), false)
                 .Cast<TestProperty>()
                 .ToDictionary(x => x.Key, x => x.Value);
}

TestPropertyAttribute (もちろん、 has KeyValueプロパティを前提としています。)

属性 の存在を検出するだけで (これが必要な場合がありますTestMethodAttribute)、 を使用できますMemberInfo.IsDefined

于 2012-04-27T06:21:40.010 に答える
0

オブジェクトが既にあると仮定するとMethodInfo(情報を取得するためのコードが既にあると言ったため)、呼び出しMethodInfo.GetCustomAttributesてそれらの属性を取得できます。また、探している属性の型を渡すことができるオーバーロードもあります。その後、結果をキャストしてそのプロパティを検査するだけです。

于 2012-04-27T06:21:47.220 に答える