该文章是系列文章 基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业 的其中一篇。

Windsor是ABP框架自带的IOC容器

关于什么是IOC,你可以Bing或者Google一下,英文不错的话推荐看一看 https://www.tutorialsteacher.com/ioc

更多关于Castle Windsor 可以阅读下列文章

现在比较常用的DI组件可以访问awesome系列查看:

微软自带DI替换为Castle Windsor

问题点在于ABP框架使用的是Castle Windsor,而微软提供的官方容器是Microsoft.Extensions.DependencyInjection

这就涉及到一个使用Castle Windsor替换Microsoft.Extensions.DependencyInjection的问题。

Castle Windsor提供了注册的方法,自己实现的话,可以通过循环访问微软自带DI容器,将其一一注册到Castle Windsor容器。

也可以nuget引用一个包:Castle.Windsor.MsDependencyInjection,源码查看:https://github.com/volosoft/castle-windsor-ms-adapter

代码改自如何在控制台应用(.Net Core)使用appsettings.json配置,需要再添加两个包

Microsoft.Extensions.Hosting
Castle.Windsor.MsDependencyInjection

需要添加以下代码

        public IConfiguration AppConfiguration { get; set; }

        public override void PreInitialize()
{
var host = new HostBuilder().ConfigureAppConfiguration((hostContext, configApp) =>
{
var hostingEnvironment = hostContext.HostingEnvironment;
AppConfiguration = AppConfigurations.Get(hostingEnvironment.ContentRootPath, hostingEnvironment.EnvironmentName);
}).ConfigureServices((hostContext, services) =>
{
services.AddSingleton(AppConfiguration); WindsorRegistrationHelper.CreateServiceProvider(IocManager.IocContainer, services);
}); host.Build();
}

如何使用Castle Windsor

  • 构造函数
  • IocManager.Instance.IocContainer.Resolve()

最新文章

  1. Centos6.5 gitlab安装使用
  2. EasyUi 改变 selelct 的 下拉内容 div 的高度
  3. Sphinx 之 Coreseek、Sphinx-for-chinaese、Sphinx+Scws 评测
  4. springmvc自定义日期编辑器
  5. Java设计模式-抽象工厂模式(Abstract Factory )
  6. 找模式串[XDU1032]
  7. Microsoft.AlphaImageLoader滤镜讲解
  8. IOS5基础教程之一-----如何创建XCode项目
  9. Js 基本数据类型、引用数据类型
  10. Java -- Thread中start和run方法的区别
  11. Android - "cause failed to find target android-14" 问题
  12. jquery全选框的实现
  13. DOM Mutation Observer
  14. CF#462 div1 D:A Creative Cutout
  15. android smartbar适配
  16. pod 更新慢解决方案
  17. WebForm应用log4net记录错误日志——使用线程列队写入
  18. RabbitMQ简单应用の主题模式(topic)
  19. VS Code 插件
  20. rest_framework 之视图

热门文章

  1. the ACID properties of HBase
  2. Machine Learning in Action(6) AdaBoost算法
  3. ORA-02298: 无法验证 (PNET.POST_CLOB_FK) - 未找到父项关键字
  4. UVA1378 A Funny Stone Game —— SG博弈
  5. tableView滑动时cell消失
  6. AttributeError: module 'tensorflow' has no attribute 'sub'
  7. 【mysql】mysql innodb 配置详解
  8. Opencv— — Bias and Gain
  9. SDOI2017 Round1 Day2 题解
  10. slice 和 splice 区别