首页 > 解决方案 > 复杂项目中统一组件注册的最佳解决方案结构是什么?

问题描述

我正在创建使用 DI 容器作为入口点的服务。

我的解决方案越来越重,这迫使我思考如何以良好的方式进行统一注册。

我有服务与其他几个具有逻辑的dll。就目前而言,Unity 仅安装在完成所有注册的 Service 中。

我的服务需要引用 DI 注册所需的所有 dll,以及 DI 中被引用的 dll 安装和使用的所有 nuget。

最后,Service 中的 packages.config 非常繁重,仅在 DI 注册时才需要,而且很难识别服务本身使用了什么,什么没有使用。

我想知道是否有其他方式,更清洁的方式来进行注册,而无需在主要项目中大量引用列表,并且不会同时破坏良好的实践角色。

我想出了两个解决方案: 1 - 仅为 UnityConfiguration 创建单独的 dll,我可以有一个公共静态类,例如:UnityConfiguration.RegisterComponents() 将由服务调用。在那个解决方案中,我仍然会有大量的所有东西的参考清单,但它至少会与主要服务分开......

2 - 可能不会被任何人(我也是)支持的解决方案:我会在每个带有逻辑的 dll 中安装 Unity,每个 dll 可以有自己的静态类 UnityConfiguration.RegisterComponents() 并且主服务将调用所有注册不知道类型...

你能分享一下你会走的路吗?我对你的意见很感兴趣...

标签: c#dependency-injectionunity-container

解决方案


推荐阅读