`ServiceRegistry` 依赖注入容器

📅 2026/7/13 4:28:26 👁️ 阅读次数 📝 编程学习
`ServiceRegistry` 依赖注入容器

ServiceRegistry依赖注入容器

路径:Source/Base/HeBianGu.Base.WpfBase/Service/IOC/ServiceRegistry.cs

ServiceRegistry是一个轻量级 IoC 容器。它负责注册服务、创建服务、获取服务。

常见能力:

方法作用
Register<TInterface, TClass>()注册接口和实现
Register<TClass>()注册具体类
GetInstance<TService>()获取服务实例
IsRegistered<T>()判断是否已注册
GetAllAssignableFrom<T>()获取某接口/基类的所有实现

通俗理解:

ServiceRegistry就像一个“服务柜台”。模块启动时把服务登记进去,使用时按接口把服务取出来。

为什么要这样做?

因为大型框架不能让所有模块互相硬编码。例如消息、日志、设置、登录、升级等能力都可以通过接口解耦。

典型注册方式:

ServiceRegistry.Instance.Register<IServiceCollection,ServiceCollection>();ServiceRegistry.Instance.Register<IApplicationBuilder,ApplicationBuilder>();

学习重点不是背代码,而是理解模式:

接口定义能力 → 实现类完成能力 → 启动时注册 → 使用时按接口获取