在我的解决方案中,我的dll包含以下格式的方法
[TestMethod]
[TestProperty("Priority", "P0")]
[TestProperty("Owner", "vbnmg")]
[TestProperty("Title", "Verify the log accessible")]
[TestProperty("ID", "1")]
public void LogAccesiblityTest()
{
//Test Code
}
某些方法具有不同的优先级,所有者,ID&标题
提供dll名称& serach标准(优先级,所有者,ID和标题),我可以获得给定优先级组或所有者组等的方法名称。
我有代码,通过它我可以获得方法名称的详细信息。使用的参数,但我没有得到如何从测试属性获取信息。
有人可以建议怎么做。
答案 0 :(得分: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
具有 Key
和Value
属性。)
要检测属性的状态(您可能需要TestMethodAttribute
),可以使用MemberInfo.IsDefined
。
答案 1 :(得分:0)
假设您已经拥有MethodInfo
个对象(因为您说您已经拥有了获取信息的代码),您可以调用MethodInfo.GetCustomAttributes
来获取这些属性。它还有一个重载,您可以在其中传递您查找的属性的类型。然后,您只需要转换结果并检查它们的属性。