0
我有幾個Web API REST接口的項目。C#Web API項目 - 通過庫共享控制器
其中一些接口在各個項目中都很常見(如用戶管理等)。
有沒有辦法讓一個擁有控制器的庫可以包含在各種項目中?
這似乎不存在於VS的模板,但它有可能或控制器需要很多其他的東西來編譯嗎?
我有幾個Web API REST接口的項目。C#Web API項目 - 通過庫共享控制器
其中一些接口在各個項目中都很常見(如用戶管理等)。
有沒有辦法讓一個擁有控制器的庫可以包含在各種項目中?
這似乎不存在於VS的模板,但它有可能或控制器需要很多其他的東西來編譯嗎?
最終,答案只有一行:
public void ConfigureServices(IServiceCollection Services)
{
Services.AddMvc()
.AddApplicationPart(typeof(SessionController).Assembly);
}
您可以在啓動過程中添加外部控制器。 我現在正在檢查是否可以立即從裝配中添加全部控制器。
你需要的不是普通的控制器,而是具有共同邏輯的普通服務,你將從不同的項目中調用。 –
每個項目都提供一個Web API;例如他們所有的用戶都有相同的代碼。邏輯已被共享,但我想共享Web部分以及控制器 – Thomas
在運行時,當路由解析爲根據url項目查找控制器時,它會在mvc項目的當前程序集中查找控制器。如果控制器不存在於mvc項目中,這將失敗。您可以通過編寫自己的控制器工廠來處理此特定用例來覆蓋此行爲。所以這不是一個簡單的解決方案。 –