C# 查找自定义属性的所有用法并检索值

C# 查找自定义属性的所有用法并检索值,c#,asp.net-mvc-4,attributes,C#,Asp.net Mvc 4,Attributes,我有一个MVC4应用程序,它有多个控制器,所有这些控制器都继承自BaseController。在其中一些控制器中,我有一个自定义属性为PageKey的操作。页面键有两个属性(组和键) 我需要一种方法来获取所有控制器中该属性的每个实例并访问这些值。我也不想在以后添加新控制器或属性实例时修改代码。好的,明白了 var attributes = Assembly.GetExecutingAssembly() .GetTypes() .SelectMany

我有一个MVC4应用程序,它有多个控制器,所有这些控制器都继承自BaseController。在其中一些控制器中,我有一个自定义属性为PageKey的操作。页面键有两个属性(组和键)

我需要一种方法来获取所有控制器中该属性的每个实例并访问这些值。我也不想在以后添加新控制器或属性实例时修改代码。

好的,明白了

var attributes = Assembly.GetExecutingAssembly()
            .GetTypes()
            .SelectMany(t => t.GetMethods())
            .SelectMany(m => m.GetCustomAttributes())
            .Where(a => a.GetType() == typeof(PageKeyAttribute));

感谢Alexei Levenkov。

您是在寻找“在文件中查找”作为文本还是一些反射代码,以获取特定程序集中所有类/方法的特定属性,还是其他什么?还请评论一下“我不想以后再修改代码”要求中的含义。这将是运行时代码。我想找到一种方法,或者获取应用程序中的所有控制器并循环使用它们来查找属性的所有实例,或者找到类似的更简单的方法。如果以后添加新控制器或属性的新实例,我不希望必须将该控制器名称添加到列表中才能循环使用。它应该只获得应用程序中所有控制器的列表。
Assembly.GetTypes
,而不是
Type.GetMethods
和。