找到控制器 DiplayName 并显示它

我编写此代码是为了在我的项目中查找控制器列表。


    public IEnumerable<Type> GetControllerDescovery(Assembly assemblies)

    {

        var controllers = assemblies.GetExportedTypes()

                                                    .Where(t => typeof(ControllerBase)

                                                    .IsAssignableFrom(t))

                                                    .Select(t => t).

                                                    ToList();

        return controllers;

    }

它向我展示了这个输出:


"IranNews.Controllers.V1.CategoryController, IranNews, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",

"IranNews.Controllers.V1.RoleManagerController, IranNews, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",

"IranNews.Controllers.V1.UserController, IranNews, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",

"IranNews.Controllers.V1.ValuesController, IranNews, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"

但我需要从[Display(Name = "UserManager")]


给我看这个:UserManager


我怎样才能做到这一点 ?????


慕哥9229398
浏览 163回答 1
1回答

MMMHUHU

尝试这个:typeof(ControllerBase) .GetProperties() .Select(x&nbsp;=>&nbsp;x.GetCustomAttribute<DisplayAttribute>()) .Where(x&nbsp;=>&nbsp;x&nbsp;!=&nbsp;null) .Select(x&nbsp;=>&nbsp;x.Name) .ToList();更新:&nbsp;这是一个工作示例:Assembly.GetExecutingAssembly().GetExportedTypes() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Where(t&nbsp;=>&nbsp;typeof(ControllerBase).IsAssignableFrom(t)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Select(t&nbsp;=>&nbsp;t.GetCustomAttribute<DisplayAttribute>()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Where(x&nbsp;=>&nbsp;x&nbsp;!=&nbsp;null) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Select(x&nbsp;=>&nbsp;x.Name) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ToList();
打开App,查看更多内容
随时随地看视频慕课网APP