首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在.NET内核3启动过程中获取控制器信息

如何在.NET内核3启动过程中获取控制器信息
EN

Stack Overflow用户
提问于 2020-01-08 16:46:08
回答 1查看 1.1K关注 0票数 2

我有一个.NET Core3WebApi应用程序,在启动过程中,我需要访问我的所有控制器方法来查看它们拥有哪些属性,并将这些信息保存到字典中。

Startup.cs

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{            
    services.AddControllers(); // is is possible to get more info about the controllers here?
}

我知道我可以使用反射来实现这个目标,在二进制文件中使用Controller搜索所有类,循环遍历它们的方法并访问它们的属性。我的问题是:还有别的办法吗?既然我需要在启动中添加控制器,也许我可以获得更多关于它们的信息?

EN

回答 1

Stack Overflow用户

发布于 2020-01-08 17:01:20

您可以使用简单的喷射器做的在容器中注册控制器的方式。类似于:

代码语言:javascript
复制
services.AddControllers();
var manager = (ApplicationPartManager)services
    .LastOrDefault(d => d.ServiceType == typeof(ApplicationPartManager))
    .ImplementationInstance;
var feature = new ControllerFeature();
manager.PopulateFeature(feature);
var controllerTypes = feature.Controllers.Select(t => t.AsType());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59650360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档