• 2024-08-20.net core web 启动过程(6)-ServiceProvider
    1 [MemberNotNull(nameof(_appServices))]privatevoidInitializeServiceProvider(){varservices=newServiceCollection();PopulateServiceCollection(services,_hostBuilderContext!,_hostingEnvironment!,
  • 2024-07-18WPF/C#:实现导航功能
    前言在WPF中使用导航功能可以使用Frame控件,这是比较基础的一种方法。前几天分享了wpfui中NavigationView的基本用法,但是如果真正在项目中使用起来,基础的用法是无法满足的。今天通过wpfui中的mvvm例子来说明在wpfui中如何通过依赖注入与MVVM模式使用导航功能。实践起来,我个人觉得
  • 2024-07-01.NET 缓存
    原文链接:https://blog.csdn.net/dabusidede/article/details/124858045内存缓存包:Microsoft.Extensions.Caching.Memory1.注册内存缓存services.AddMemoryCache();2.基本使用示例publicclassWorker:BackgroundService{privatereadonlyILogger<Worker>_logg
  • 2024-06-05.NET控制台获取依赖注入实例
    internalclassProgram{staticvoidMain(string[]args){//创建服务集合varservices=newServiceCollection();//注入services.AddScoped<IMyService,MyService>();//配置服务ConfigureServices(serv
  • 2024-06-02Microsoft.Extensions.DependencyInjection会自动释放通过DI(依赖注入)创建的对象
    Microsoft.Extensions.DependencyInjection中(下面简称DI),在调用ServiceProvider和IServiceScope对象的Dispose()方法时,也会自动调用ServiceProvider和IServiceScope对象通过DI创建的对象的Dispose()方法(前提是,通过DI创建的对象实现了IDisposable接口)。我们新建一个.NETCore控制台
  • 2024-05-29原生WPF使用IOC容器
    1、删除App.xaml中的StartupUri=""2、改造App.xaml.cspublicpartialclassApp:Application{publicApp(){ServiceProvider=GetServiceProvider();}privateIServiceProviderGetServiceProvider(){ServiceC
  • 2024-05-12WinForm使用IOC控制程序
    新建WinForm程序1、添加Nuget包Microsoft.Extensions.DependencyInjection2、改变启动项internalstaticclassProgram{///<summary>///应用程序的主入口点。///</summary>[STAThread]staticvoidMain(){//创建服务容
  • 2024-04-17.Net6-利用IServiceProvider实现全局依赖注入
    需求背景:自定义类库程序中的类文件引用IService接口对象并实现依赖注入。1.修改应用程序Program.cs文件1varbuilder=WebApplication.CreateBuilder(args);2builder.Services.AddProgramService();345varapp=builder.Build();6InternalApp.ServiceProvider=a
  • 2024-03-28net 6 手动注入
    Program.cs EnginContex为静态类//注册服务EnginContext.SetServiceProvider(app.Services);EnginContex.cspublicsealedclassEnginContext{privatestaticIServiceProvider_serviceProvider;[MethodImpl(MethodImplOptions.Synchroni
  • 2024-03-13.Net Core 依赖注入DI
    一、依赖注入(DI)定义    依赖注入(DependencyInjection,简称DI)是一种设计模式,用于解耦组件(服务)之间的依赖关系。它通过将依赖关系的创建和管理交给外部容器来实现,而不是在组件(服务)内部直接创建依赖对象。   它可以帮助我们更好地管理和组织组件,提高代码的可读性,扩
  • 2024-02-26控制反转IOC与依赖注入DI
    控制反转IOC与依赖注入DI需要掌握DI和IOC的含义是什么?掌握NetCore自带的依赖注入原理以及如何实现的流程以及熟悉对应的接口作用。学会在你的项目中集成AutoFacIOC控制反转--思想什么是IOC?IOC即控制反转,记住他是一种思想,目的是用来管理项目中对象的生命周期和依赖关
  • 2024-01-04asp.net core 6+中获取IServiceProvider的几种途径,以及之间的区别
    获取IServiceProvider实例的几种方法通过构造函数注入(ConstructorInjection):publicclassMyController:ControllerBase{privatereadonlyIServiceProvider_serviceProvider;publicMyController(IServiceProviderserviceProvider){_servicePr
  • 2023-12-25.NET 8最强新功能:键控服务依赖注入
    什么是键控服务依赖注入?在之前的依赖注入中,服务是根据其类型进行注册和解析的。如果出现同一接口有多个实现怎么办呢?这时候就可以使用.NET8的新功能“键控服务依赖注入”。它允许您注册接口的多个实现,每个实现都与一个唯一键相关联,然后基于该键解析所需的实现。在.NET8中的实
  • 2023-10-16详解.NET依赖注入中对象的创建与“销毁”
    在DI容器中注册类型,DI容器就可以帮我们创建类型的实例;如果注册类型实现了IAsyncDisposable或者IDisposable接口,对象销毁时DI容器还会帮我们调用DisposeAsync或Dispose方法。这是如何实现的呢?一起来看看吧。本文是基于DependencyInjection8.0编写。如果已熟练使用,可以直接从第三
  • 2023-10-12造轮子之属性注入配合懒加载构建服务抽象基类
    在前面实现管理API的时候,可以看到我们用的挺多功能是没有通过构造函数注入的。比如缓存DistributedCache,MemoryCache,对象映射Mapper,多语言L,当前用户CurrentUser等等。这些全都初始化在WheelServiceBase以及WheelControllerBase中,可以通过属性注入完成这个操作,同时为了避免注入太多
  • 2023-09-27ASP.NET Core Web (三) 依赖注入
    依赖注入注入方法方法说明AddTransient每次service请求都是获得不同的实例,暂时性模式AddScoped对于同一个请求返回同一个实例,不同的请求返回不同的实例,作用域模式AddSingleton每次都是获得同一个实例,单一实例模式MVC控制器的DI构造函数输入创建接口
  • 2023-09-10QuartzNet在blazor-winform的使用
    通过构造函数获取ISchedulerFactoryprivateasyncvoidInitJob(){var_scheduler=await_schedulerFactory.GetScheduler();_scheduler.JobFactory=newQuartzJobFactory(_serviceProvider);;//awaitfactory.GetScheduler();IJobDetailjob=
  • 2023-09-05AspNetCore依赖注入在控制台的应用
    ①安装包:Microsoft.Extensions.DependencyInjection②应用主方法里面://接口IService,实现:Service,方法:Execute();varserviceProvider=newServiceCollection().AddSingleton<IService,Service>().BuildServiceProvider();var
  • 2023-08-16C# .NET6 WPF 依赖注入
    入口文件:App.xaml.csusingMicrosoft.EntityFrameworkCore;usingMicrosoft.Extensions.Configuration;usingMicrosoft.Extensions.DependencyInjection;usingSerilog;usingSystem;usingSystem.IO;usingSystem.Text;usingSystem.Windows;namespaceDemo{
  • 2023-06-26发布一个Visual Studio 2022 插件,可以自动完成构造函数依赖注入代码
    赖注入(DI)在开发中既是常见的也是必需的技术。它帮助我们优化了代码结构,使得应用更加灵活、易于扩展,同时也降低了各个模块之间的耦合度,更容易进行单元测试,提高了编码效率和质量。不过,手动注入依赖项也可能会成为我们开发过程中的瓶颈。通常情况下,当我们需要注入大量依赖对象时,我
  • 2023-05-19.NET 通过源码深究依赖注入原理
    依赖注入(DI)是.NET中一个非常重要的软件设计模式,它可以帮助我们更好地管理和组织组件,提高代码的可读性,扩展性和可测试性。在日常工作中,我们一定遇见过这些问题或者疑惑。Singleton服务为什么不能依赖Scoped服务?多个构造函数的选择机制?源码是如何识别循环依赖的?虽然我们可
  • 2023-05-18依赖注入 (DI) 是.NET中一个非常重要的软件设计模式,它可以帮助我们更好地管理和组织组件,提高代码的可读性
    依赖注入(DI)是.NET中一个非常重要的软件设计模式,它可以帮助我们更好地管理和组织组件,提高代码的可读性,扩展性和可测试性。在日常工作中,我们一定遇见过这些问题或者疑惑。Singleton服务为什么不能依赖Scoped服务?多个构造函数的选择机制?源码是如何识别循环依赖的?虽然我们可
  • 2023-05-17.NET 通过源码深究依赖注入原理
    依赖注入(DI)是.NET中一个非常重要的软件设计模式,它可以帮助我们更好地管理和组织组件,提高代码的可读性,扩展性和可测试性。在日常工作中,我们一定遇见过这些问题或者疑惑。Singleton服务为什么不能依赖Scoped服务?多个构造函数的选择机制?源码是如何识别循环依赖的?虽然我们可
  • 2023-05-17laravel ServiceProvider 服务提供者使用案例
    1.实例化一个类2.全局注册这个类3.在控制器中使用 publicfunctionregister(){$this->app->singleton('wxminapp',function(){return(newWxServiceProvider)->boot();});}使用注册方法,注册一个服务提供者,wxminapp为服务
  • 2023-04-26C# abp中EfCore执行原生sql和事务操作
    ef自带的方法是没有执行原生sql的,必须在仓储实现类中注入dbContextProvider、然后就可以使用FromSqlRaw查询,ExecuteSqlRawAsync执行新增、修改、删除,efcore方法都是自带事务的,有时候我们想在自己的业务逻辑中嵌入事务,就使用CreateExecutionStrategy创建事务操作:publicclassAcc