我不知道AbpUserConfigurationController的基本原理?它是如何注入到aspnet核心DI容器中的?为什么不能在Swagger页面上看到?我正在使用aspnetboilerplate高级启动模板。
发布于 2018-08-15 17:36:22
覆盖AbpUserConfigurationController的
您可以使用aspnetboilerplate/#3296(评论)中提到的方法
以了解Abp如何将控制器注入AspNetCore项目
由@曾解释,控制器可以通过AddApplicationPart of ApplicationPartManager添加。
有几个地方,总部基地使用ApplicationPartManager包括额外的控制器。
Abp.AspNetCore中,正如@曾所指出的,在AbpAspNetCoreModule#L47-78中,实现包括在Abp.AspNetCore程序集中创建的Controller。*WebCoreModule.cs项目下查找*.*.Web.Core。下面的代码片段是Abp将MyProjectApplicationModule程序集中的所有应用程序服务转换为控制器的另一个地方。Configuration.Modules.AbpAspNetCore()
.CreateControllersForAppServices(
typeof(MyProjectApplicationModule).GetAssembly()
);此外,您还可以查看AbpAspNetCoreConfigur.cs#L47-L55,其中正在更新ControllerAssemblySettings。
注意,CreateControllersForAppServices在PreInitialize() of AbpModule中被调用,AddApplicationParts在PostInitialize() of AbpAspNetCoreModule中被调用。
因此,在方法ControllerAssemblySettings of AbpAspNetCoreModule中使用的AbpAspNetCoreModule已经包含了要通过ApplicationPartManager添加的所有控制器。
理解为什么AbpUserConfigurationController 没有出现在swagger-ui中的原因
简而言之,Swagger不支持传统路由,请参阅斯巴什巴克尔-像素探险家路由。
TokenAuthController出现在swagger-ui中,因为它是用[Route("api/[controller]/[action]")] (属性路由)修饰的。
https://stackoverflow.com/questions/51840788
复制相似问题