该文章是系列文章 基于.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()

Windows服务使用Windsor容器的更多相关文章

  1. 基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业

    demo地址:ABP.WindowsService 该系列文章启发自 How to: Create a Windows Service that schedules jobs, logs and is ...

  2. 使用Topshelf 开发windows服务

    在业务系统中,我们为了调度一些自动执行的任务或从队列中消费一些消息,所以基本上都会涉及到后台服务的开发.如果用windows service开发,非常不爽的一件事就是:调试相对麻烦,而且你还需要了解 ...

  3. C# Windows服务的创建、安装、调试

    一.查看已有的Windows服务 选择菜单"开始"-〉"控制面板"-〉"管理工具"-〉"服务"来查看现有系统中的服务 二 ...

  4. .NET 微服务和Docker容器

    .NET 微服务:适用于容器化 .NET 应用的体系结构 容器和 Docker 简介 什么是 Docker? Docker 术语 Docker 容器.映像和注册表 为 Docker 容器选择 .NET ...

  5. 以Windows服务方式运行.NET Core程序

    在之前一篇博客<以Windows服务方式运行ASP.NET Core程序>中我讲述了如何把ASP.NET Core程序作为Windows服务运行的方法,而今,我们又遇到了新的问题,那就是: ...

  6. 【原创】Windows服务管家婆之Service Control Manager

    Service Control Manager,服务控制管理器,人称SCM就是它!在Windows内核中,都可以看到她忙碌的身影,可以说是系统服务和驱动的管家婆了!     SCM管家婆起早贪黑,每次 ...

  7. [转帖]以Windows服务方式运行.NET Core程序

    以Windows服务方式运行.NET Core程序 原作者blog:https://www.cnblogs.com/guogangj/p/10093102.html 里面使用了NSSM 工具 但是自己 ...

  8. 连表查询都用Left Join吧 以Windows服务方式运行.NET Core程序 HTTP和HTTPS的区别 ASP.NET SignalR介绍 asp.net—WebApi跨域 asp.net—自定义轻量级ORM C#之23中设计模式

    连表查询都用Left Join吧   最近看同事的代码,SQL连表查询的时候很多时候用的是Inner Join,而我觉得对我们的业务而言,99.9%都应该使用Left Join(还有0.1%我不知道在 ...

  9. 【Windows】Windows服务管家婆之Service Control Manager

    Service Control Manager,服务控制管理器,人称SCM就是它!在Windows内核中,都可以看到她忙碌的身影,可以说是系统服务和驱动的管家婆了!     SCM管家婆起早贪黑,每次 ...

随机推荐

  1. 九度OJ 1084:整数拆分 (递归)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2274 解决:914 题目描述: 一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1 ...

  2. Win32对话框工程笔记

    Main.cpp #include <Windows.h> #include "resource.h" INT_PTR CALLBACK dialogProc(HWND ...

  3. mongodb学习之:主从复制

    在sql server能够做到读写分离,双机热备份和集群部署,这些在mongodb也能做到.首先来看主从复制.我们就在一台电脑上进行操作 第一步:分别建立master和slave两个文件夹 第二步:开 ...

  4. 3.改变 HTML 内容

    ①x=document.getElementById("demo") //查找元素 ②x.innerHTML="Hello JavaScript"; //改变内 ...

  5. Machine Learning in Action(7) 回归算法

    按照<机器学习实战>的主线,结束有监督学习中关于分类的机器学习方法,进入回归部分.所谓回归就是数据进行曲线拟合,回归一般用来做预测,涵盖线性回归(经典最小二乘法).局部加权线性回归.岭回归 ...

  6. spring4.2更好的应用事件

    1.基于注解驱动事件监听器:现在可以在一个Bean的方法上使用@EventListener注解来自动注册一个ApplicationListener来匹配方法签名. @Component public ...

  7. ZOJ - 3932 Handshakes 【水】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3932 题意 给出 N 个人,然后 1-N 然后 从 1 - N ...

  8. 对于pod导入第三方库文件终端语言记录

    //换成 pod install --verbose --no-repo-update //生成Podfile文件 touch Podfile 加上--verbose --no-repo-update ...

  9. Windows程序设计(1)——Win32运行原理(三)

    进程控制 1 获得系统进程 2 终止当前进程 3 终止其他进程 4 进程控制 4.1 获得系统进程 使用toolhelp模块可以实现获取系统中当前运行当中的进程列表. 思路如下,使用CreateToo ...

  10. LWDB

    题意: 给一棵 $n$ 个节点的树,维护两种操作: 1.将距离 $x$ $distance \leq d$ 的点染成 $c$ 2.询问 $x$ 的颜色. 解法: 首先将染色可以转换为每个时间对应一个颜 ...