ASP .NET Core路由到外部程序集中的控制器

Mel*_*per 1 c# asp.net-mvc url-routing asp.net-core

这是有关ASP.NET Core路由的文章:https : //docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/routing

很简单。我可以指定这样的路线:

app.UseMvc(routes =>
{
   routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)

或者,我可以使用以下属性标记我的控制器和动作:

[Route("api/[controller]")]
public class TestController : Controller
{
    [HttpGet("{id}")]
    public async Task<string> Get(string id)
    {
        return "test";
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我尝试将控制器放入具有属性的外部库中,并从我的主服务引用该程序集,当我打入Url时,调用不会路由到控制器。我猜想我需要告诉ASP.NET Core扫描哪些程序集,但是我不知道如何。我正在使用此网址BTW:http:// localhost:5000 / api / test / a

小智 5

为了告诉ASP.NET Core应该在哪个程序集中查找控制器,可以使用称为“应用程序部件”的概念。您在问题中张贴的URL旁边的右边有一篇文章:

https://docs.microsoft.com/zh-cn/aspnet/core/mvc/advanced/app-parts?view=aspnetcore-2.0

使用该方法,您甚至可以根据应用程序配置文件中的设置,通过动态加载程序集来使用根应用程序程序集未引用的程序集中的控制器。