2017-06-27 31 views
0

我有几个Web API REST接口的项目。C#Web API项目 - 通过库共享控制器

其中一些接口在各个项目中都很常见(如用户管理等)。

有没有办法让一个拥有控制器的库可以包含在各种项目中?

这似乎不存在于VS的模板,但它有可能或控制器需要很多其他的东西来编译吗?

+0

你需要的不是普通的控制器,而是具有共同逻辑的普通服务,你将从不同的项目中调用。 –

+0

每个项目都提供一个Web API;例如他们所有的用户都有相同的代码。逻辑已被共享,但我想共享Web部分以及控制器 – Thomas

+0

在运行时,当路由解析为根据url项目查找控制器时,它会在mvc项目的当前程序集中查找控制器。如果控制器不存在于mvc项目中,这将失败。您可以通过编写自己的控制器工厂来处理此特定用例来覆盖此行为。所以这不是一个简单的解决方案。 –

回答

0

最终,答案只有一行:

public void ConfigureServices(IServiceCollection Services) 
    { 
     Services.AddMvc() 
      .AddApplicationPart(typeof(SessionController).Assembly); 
    } 

您可以在启动过程中添加外部控制器。 我现在正在检查是否可以立即从装配中添加全部控制器。