0

我正在尋找添加多租戶到我正在開發的.net核心MVC應用程序。.Net核心 - 多租戶控制器覆蓋

我的目標是具有包含基本功能,包括控制器,視圖,資產等的一個核心項目

然後我想有每個租戶一個單獨的項目可以從核心項目覆蓋默認值。目前,我正在努力解決覆蓋控制器的任務,不僅在控制器級別,而且還有能力覆蓋控制器內的單個操作。

我該怎麼做才能做到這一點,我在想IControllerFactory,但不知道這是否是.net核心中的正確位置?

我假設可能有一個與IoC實現這一點,但需要指向正確的方向。

任何人有任何想法呢?

回答

1

這是我在當前項目中設計的方式,我的要求與您的要求略有不同,因爲它的多租戶可以在多個國家運營,但每個租戶的功能相同,但每個國家/地區都不相同,下面的設計將有希望給你一些想法,以幫助你的方式。

我把控制器視爲一種導航機制,使它們保持輕薄。我有每個國家的區域(在您的情況,這可能是每個租戶的區域)

enter image description here

每個區域控制器簡單地引用一個基本的控制器

enter image description here

的基本控制器是非常輕因爲我們希望能夠使用我們的DI容器在每個國家實施定製邏輯。讓我們通過Edit方案來獲取許可證。

enter image description here 智能感知渲染視圖不應該是紅色:)

編輯許可證要求_editPermitManager它的類型是IEditPermitManager注入到我們的控制器。我在新西蘭的系統中有兩種實現方式,因爲它是一種特殊情況和一種所有其他國家使用(但您可以輕鬆地在每個國家/地區實施)。

enter image description here

enter image description here

我管理這個注射ninject enter image description here

流是用戶導航到/嗒嗒/新西蘭/許可證/編輯/ 4點擊提交這涉及許可證控制器在新西蘭,因此ninjects注入了新西蘭的編輯管理器,這是在編輯流程中調用的,我還注入了一個INavigationService(_navigationService.Route),使我可以直接針對每個國家/地區的不同意見SIS。

希望能給你一個出發點。