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。

希望能给你一个出发点。