首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ASP.NET CoreMVC2.0中使用另一个程序集中的控制器?

如何在ASP.NET CoreMVC2.0中使用另一个程序集中的控制器?
EN

Stack Overflow用户
提问于 2017-12-03 11:44:07
回答 5查看 44.9K关注 0票数 63

为了模块化,我在不同的程序集中创建了一些控制器。每个程序集表示一个有界的上下文(一个模块、一个子系统、一个分区等)。在整个系统中。

每个模块的控制器都是由对其他模块一无所知的人开发的,中央协调器将在一个应用程序中涵盖所有这些模块。

所以,有一个叫做学校的模块,里面有一个TeacherController。它的输出是Contoso.School.UserService.dll

主编排器称为Education,它引用了Contoso.School.UserService.dll

我的program.cs是:

代码语言:javascript
复制
    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args).UseKestrel()
            .UseStartup<Startup>()
            .Build();

然而,对于教师控制器的路线,我得到404。如何在其他程序集中使用控制器?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-12-03 11:50:13

ConfigureServices类的Startup方法中,您必须调用以下命令:

代码语言:javascript
复制
services.AddMvc().AddApplicationPart(assembly).AddControllersAsServices();

其中assembly是表示Contoso.School.UserService.dll的实例Assembly

您可以加载它,可以从任何包含的类型获取它,或者像这样:

代码语言:javascript
复制
var assembly = Assembly.Load("Contoso.School.UserService");
票数 84
EN

Stack Overflow用户

发布于 2019-11-30 23:53:07

对于.NET Core3.0 API略有改变。,以及在Startup.cs中从外部程序集注册控制器的最简单方法如下:

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
    var assembly = typeof(**AnyTypeFromRequiredAssembly**).Assembly;

    services.AddControllers()
        .PartManager.ApplicationParts.Add(new AssemblyPart(assembly));
}
票数 58
EN

Stack Overflow用户

发布于 2020-05-15 05:29:19

在将遗留单元测试从.NET框架迁移到aspnet核心3.1时,我试图解析控制器,这是我让它工作的唯一方法:

代码语言:javascript
复制
var startupAssembly = typeof(Startup).Assembly;

var services = new ServiceCollection();

// Add services
...

// Add Controllers
services
    .AddControllers()
    .AddApplicationPart(startupAssembly)
    .AddControllersAsServices();

如果我更改最后三行的顺序,它就无法工作。

避免为单元测试这样做,除非您真的必须这样做,例如,由于遗留的原因。如果您没有使用遗留代码,您可能正在寻找https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-3.1

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47617994

复制
相关文章

相似问题

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