.NET Core 原生 DI 扩展之属性注入实现 本文介绍了在.NET Core原生DI中实现属性注入的方法。讨论了属性注入的优缺点,提出通过实现自定义的AutowiredServiceProvider和AutowiredServiceProviderFactory来支持属性注入。详细讨论了装饰器模式在这一过程中的应用,以及替换默认ServiceProvider的方法。最后,展示了如何在Controller中实现属性注入,并解决非Controller层使用时的问题。整体方案存在一些问题,如依赖关系模糊和部分解耦困难,但在可控的小范围内使用可以考虑。
.NET Core 原生 DI 扩展之基于名称的注入实现 本文介绍了在.NET Core中基于名称的依赖注入的实现方式。首先讨论了.NET Core原生DI的局限性,推荐了Autofac等第三方IoC容器,然后以一个接口对应多种实现的场景为例,展示了如何使用基于名称的注入来解决注册多个实现时的混淆问题。通过实现INamedServiceProvider和相关Builder类,最终实现了基于名称的依赖注入。这种解决方案避免了多实现冲突的问题,提供了更灵活的服务获取方式。