1、概念:.NET 支持依赖关系注入 (DI) 软件设计模式,这是一种在类及其依赖项之间实现控制反转 (IoC) 的技术。 .NET 中的依赖关系注入是框架的内置部分,与配置、日志记录和选项模式一样。
2、依赖关系注入通过以下方式解决了这些问题:
- 使用接口或基类将依赖关系实现抽象化。
- 在服务容器中注册依赖关系。 服务是在 IServiceCollection 中添加和配置的。 服务通常已在应用的 Program.cs 文件中注册。
- 将服务注入到使用它的类的构造函数中。 框架负责创建依赖关系的实例,并在不再需要时将其释放。
3、实现
- 创建一个使用依赖注入的 .NET 控制台应用
- 生成和配置通用主机
- 编写多个接口及相应的实现
- 为 DI 使用服务生存期和范围设定
添加接口
将以下接口添加到项目根目录:
IOperation.cs
namespace ConsoleDI.Example;
public interface IOperation
{
string OperationId { get; }
}
IOperation.cs Transient
namespace ConsoleDI.Example;
public interface ITransientOperation : IOperation
{
}
IOperation.cs Scoped
namespace ConsoleDI.Example;
public interface IScopedOperation : IOperation
{
}
IOperation.cs Singleton
namespace ConsoleDI.Example;
public interface ISingletonOperation : IOperation
{
}