基于命名空间/程序集的字符串表示检测方法的属性

时间:2013-06-15 22:27:40

标签: c# .net

我想知道如果你所知道的是属性的完全限定名称,如何检测方法上的任意属性。

例如:

[MyAttribute]
public void SomeMethod()
{
} 

基于包含类型名称+程序集的字符串,我可以检测方法是否包含字符串描述的属性吗?

我想使检测可插入且动态,因此不会引用属性程序集。用户将添加对他们自己想要使用的属性的引用。我只是想实现一个通用的方法来检测任何方法,只要我有它的完全限定名。

1 个答案:

答案 0 :(得分:0)

好的,我可以执行以下操作来查找具有给定属性的所有方法:

Type t;

t.GetMembers().Where(m => m.GetCustomAttributes(false).Any(a => a.GetType().Namespace == "Some.nameSpace" && a.GetType().Name == "AttributeName")).ToArray();