如何在ASP.NET Core MVC 2.0中的另一个程序集中使用控制器?
为了模块化,我在不同的程序集中创建了一些控制器。 每个程序集代表整个系统的有界上下文(模块,子系统,部门等)。
每个模块的控制器都是由对其他模块一无所知的人开发的,中央协调器即将在一个应用程序中覆盖所有这些模块。
所以,这个模块叫做school,它里面有一个TeacherController
。 它的输出是Contoso.School.UserService.dll
。
主协调器称为Education
,它引用了Contoso.School.UserService.dll
。
我的program.cs
是:
public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args).UseKestrel() .UseStartup() .Build();
然而对于教师控制器的路线,我得到404.如何在其他组件中使用控制器?
在Startup
类的ConfigureServices
方法中,您必须调用以下内容:
services.AddMvc().AddApplicationPart(assembly).AddControllersAsServices();
assembly
是表示Contoso.School.UserService.dll
的实例assembly
。
你可以加载它从任何包含的类型获取它或像这样:
var assembly = Assembly.Load("Contoso.School.UserService");
- MVC 6 Controller中的ControllerContext和ViewEngines属性在哪里?
- 如何在环境变量中正确存储连接字符串,以便通过生产ASP.Net Core MVC应用程序进行检索
- 在哪里可以找到ASP.NET Core MVC中的模型绑定错误?
- 修改CookieAuthenticationOptions LoginPath OnRedirectToReturnUrl事件
- 如何使用Reflection或其他准确方法获取控制器内的当前ASP.NET核心控制器方法名称
- MVC 6路由,SPA后备+ 404错误页面
- 在ASP.NET Core 2.0 Web Api中返回“raw”json
- ASP.NET Core是否支持RESTful Web API的JSON Web签名?
- ASP.NET 5 / MVC 6中基于约定的绑定