为了账号安全,请及时绑定邮箱和手机立即绑定

找到控制器 DiplayName 并显示它

找到控制器 DiplayName 并显示它

C#
慕哥9229398 2022-12-04 10:50:52
我编写此代码是为了在我的项目中查找控制器列表。    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我怎样才能做到这一点 ?????
查看完整描述

1 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

尝试这个:

typeof(ControllerBase)
.GetProperties()
.Select(x => x.GetCustomAttribute<DisplayAttribute>())
.Where(x => x != null)
.Select(x => x.Name)
.ToList();

更新: 这是一个工作示例:

Assembly.GetExecutingAssembly().GetExportedTypes()
        .Where(t => typeof(ControllerBase).IsAssignableFrom(t))
        .Select(t => t.GetCustomAttribute<DisplayAttribute>())
        .Where(x => x != null)
        .Select(x => x.Name)
        .ToList();


查看完整回答
反对 回复 2022-12-04
  • 1 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号