首页 > 解决方案 > 保持 .NET 依赖注入井然有序

问题描述

最近我开始使用 .NET Core 2.1 开发一个新项目,我决定使用 SOLID 原则并创建一个不错的项目结构。

它是一个 Web API 项目。一切正常我使用了很多依赖注入,大部分东西都很容易测试。

这就是我必须注册所有服务的部分。我实际上有数百行看起来像这样:

services.AddSingleton<...>();

或者

services.AddScoped<...>();

我的每项服务都有一条线路,对于一个小项目来说就可以了。然而,当我有数百个这样的东西时,它变得一团糟。基本上,整个项目的秩序非常好,而且 Startup.cs 中充满了 services.AddX 语句。

我想用注册服务的方法创建静态类,但这看起来不太好。

将来我需要添加更多服务,我不能只是继续创建静态类或填充旧类,因为我最终会再次陷入同样的​​混乱,而且我更难以记住我在哪里注册给定的服务。

标签: c#.netasp.net-coredependency-injection.net-core

解决方案


如果你真的有数百个,你可能想用 Autofac 替换默认容器。这些类型的框架支持模块或某种“子容器”。

模块是一个小类,可用于将一组相关组件捆绑在“外观”后面,以简化配置和部署。

更换 DI Autofac 模块


推荐阅读