• 2024-09-04ioc
    publicclassIoc:IServiceProvider{privateIoc_root;privateConcurrentDictionary<Type,ServiceRegistry>_registries=newConcurrentDictionary<Type,ServiceRegistry>();privateConcurrentDictionary<Type,object?>_s
  • 2024-07-10.net 6及以上版本 WebAPI 初始化项目介绍
    从ZR.Admin里面摘出一部分作为参考 1.Program.cs publicclassProgram{publicstaticvoidMain(string[]args){varbuilder=WebApplication.CreateBuilder(args);//Addservicestothecontainer.
  • 2024-04-17.Net6-利用IServiceProvider实现全局依赖注入
    需求背景:自定义类库程序中的类文件引用IService接口对象并实现依赖注入。1.修改应用程序Program.cs文件1varbuilder=WebApplication.CreateBuilder(args);2builder.Services.AddProgramService();345varapp=builder.Build();6InternalApp.ServiceProvider=a
  • 2024-04-17一个.NET内置依赖注入的小型强化版
    前言.NET生态中有许多依赖注入容器。在大多数情况下,微软提供的内置容器在易用性和性能方面都非常优秀。外加ASP.NETCore默认使用内置容器,使用很方便。但是笔者在使用中一直有一个头疼的问题:服务工厂无法提供请求的服务类型相关的信息。这在一般情况下并没有影响,但是内置容器支
  • 2024-03-20.Net依赖注入神器Scrutor
    .Net依赖注入神器Scrutor(上)前言从.NetCore开始,.Net平台内置了一个轻量,易用的IOC的框架,供我们在应用程序中使用,社区内还有很多强大的第三方的依赖注入框架如:AutofacDryIOCGraceLightInjectLamarStashboxSimpleInjector内置的依赖注入容器基本可以满足大多数
  • 2024-03-19.Net依赖注入神器Scrutor(上)
    前言从.NetCore开始,.Net平台内置了一个轻量,易用的IOC的框架,供我们在应用程序中使用,社区内还有很多强大的第三方的依赖注入框架如:AutofacDryIOCGraceLightInjectLamarStashboxSimpleInjector内置的依赖注入容器基本可以满足大多数应用的需求,除非你需要的特定功能
  • 2024-01-13聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(完结篇)
    聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(完结篇) 合集-聊一聊如何整合Microsoft默认的Ioc容器和Castle.Core(4) 1.聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(二)01-122.聊一聊如何结合Microsoft.Extension
  • 2024-01-13聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(完结篇)
    前言书接上回,上回我们了解了castle代理的一些缺点,本文将开始操作整合Microsoft.Extension.Dependency和Castle,以让默认的容器可以支持拦截器我们将以进阶的形式逐步完善我们的封装,以实现一个更方便易用、普适、高性能的基础设施库。基础版还是先上代码,这是基础版本我们
  • 2023-06-28.net core IOC容器实现(三)--CallSite
    接着上面一节,这一节主要来看看callSite是如何生成的CallSite是通过CallSiteFactory.GetCallSite(TypeserviceType,CallSiteChaincallSiteChain)生成的,CallSiteFactory是在ServiceProvider里实例化的。代码如下privatereadonlyConcurrentDictionary<ServiceCacheKey,
  • 2023-06-21.net core IOC容器实现(二) -- GetService
    使用IOC容器最重要的两个步骤就是注入服务和从容器内获取服务实例。上一节聊的ServiceDescriptor其实就可以看成注入服务的步骤,这一节初步聊一聊获取服务实例的相关源码。GetServiceGetService方法是获取服务实例的入口,位于ServiceProvider这个类中publicobject?GetServ
  • 2023-06-02.net core IOC容器实现(一) -- ServiceDescriptor
    IOC容器内保存的程序运行过程中使用的服务实例。那么如果有些服务实例需要在运行时动态生成,比如,数据库连接,不可能在程序运行过程中所有线程共用一条数据库连接。所以IOC容器内保存的不是具体的服务实例,而是服务的相关信息,使用这个信息可以在程序运行时动态的生成服务实例,这些信
  • 2023-05-19.NET 通过源码深究依赖注入原理
    依赖注入(DI)是.NET中一个非常重要的软件设计模式,它可以帮助我们更好地管理和组织组件,提高代码的可读性,扩展性和可测试性。在日常工作中,我们一定遇见过这些问题或者疑惑。Singleton服务为什么不能依赖Scoped服务?多个构造函数的选择机制?源码是如何识别循环依赖的?虽然我们可
  • 2023-05-17.NET 通过源码深究依赖注入原理
    依赖注入(DI)是.NET中一个非常重要的软件设计模式,它可以帮助我们更好地管理和组织组件,提高代码的可读性,扩展性和可测试性。在日常工作中,我们一定遇见过这些问题或者疑惑。Singleton服务为什么不能依赖Scoped服务?多个构造函数的选择机制?源码是如何识别循环依赖的?虽然我们可