Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 复杂项目中unity组件注册的最佳解决方案结构是什么?_C#_Dependency Injection_Unity Container - Fatal编程技术网

C# 复杂项目中unity组件注册的最佳解决方案结构是什么?

C# 复杂项目中unity组件注册的最佳解决方案结构是什么?,c#,dependency-injection,unity-container,C#,Dependency Injection,Unity Container,我正在创建使用DI容器作为入口点的服务 我的解决方案越来越重,这迫使我思考如何以良好的方式进行统一注册 我有服务与其他夫妇的DLL与逻辑。就目前而言,Unity仅安装在所有注册都已完成的服务中 我的服务需要引用DI注册所需的所有DLL,以及DI中被推荐DLL安装和使用的所有NUGET 服务中的packages.config非常繁重,仅用于DI注册,很难识别服务本身使用了什么和没有使用什么 我想知道是否有其他的方法,更干净的方法来注册,而不需要在主项目中列出大量的参考资料,同时也不需要停止好的实践

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

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

我有服务与其他夫妇的DLL与逻辑。就目前而言,Unity仅安装在所有注册都已完成的服务中

我的服务需要引用DI注册所需的所有DLL,以及DI中被推荐DLL安装和使用的所有NUGET

服务中的packages.config非常繁重,仅用于DI注册,很难识别服务本身使用了什么和没有使用什么

我想知道是否有其他的方法,更干净的方法来注册,而不需要在主项目中列出大量的参考资料,同时也不需要停止好的实践角色

我提出了两个解决方案: 1-仅为UnityConfiguration创建单独的dll,我可以有一个公共静态类,如:UnityConfiguration.RegisterComponents(),该类将由服务调用。在这个解决方案中,我仍然会有一个关于所有内容的巨大的引用列表,但它至少会与主服务分离

2-解决方案可能不会被任何人(我也不支持):我会在每个dll中安装Unity,每个dll都有自己的静态类UnityConfiguration。RegisterComponents()和main service会调用所有注册,而不知道类型


你能分享一下你的想法吗?我真的对你的意见很感兴趣……

虽然这是一个很好的问题,但可能是因为它的答案往往是自以为是的,所以应该更多地关注你应该如何做出某个选择,而不是我们认为对你来说可能是一个更好的战略决策。例如,我喜欢只共享共享类中的接口,然后在加载我的应用程序时检测并调用这些接口,就像IServiceContainer.Register(IUnityContainer容器),但这是因为我从不同的路径加载DLL,有些人喜欢基于属性的单个大型引导。我们的问题似乎与此相关: