天天看点

如何在控制台中集成AutoFac,一文搞懂!

​​深度解析HashMap底层实现架构>>>

如何在控制台中集成AutoFac,一文搞懂!

​​

首先声明,本文使用的.NetCore版本是3.0以上,有使用后感觉不一致的同学请首先检查自己的版本问题。

场景说明:

NetCore的很多轮子和案例是基于NetCoreWeb的,毕竟Web的应用场景比较多,所以网上的文章也会多一些。 在NetCoreWeb中有我们熟知的Startup.cs 文件,其中有俩个重要的方法

相信大家看到这俩个方法会觉得倍感亲切,通过几个例子来让大家回忆加快

如果要注入自定义的类,我们可以通过以下三种方式

上文的内容相信大家看一下也就都了解了。

那么问题来了,有些应用我们不想弄web项目,太大太杂。我就想整一个控制台项目,用到什么添加什么。那这个时候我们如何利用依赖注入来实现和上文一样的效果呢?

core版本3.0以上,在此重申一下。

其实我们仔细看NetCoreWeb的初始项目可以发现,在Program.cs下Main方法可以看到了个初始执行函数。

​<code>​Host.CreateDefaultBuilder​</code>​​其实就是在构造一个Host主机,自定义的内容使用StartUp中的俩个方法进行配置,最后​<code>​.Run​</code>​生成一个新的主机实例,就是一个服务 。

那么在控制台下有没有相似的方式 ,答案是有的。上代码

new HostBuilder() Host.CreateDefaultBuilder() 这俩个方法是不是感觉是一样的,只是表现形式不一样,没错,你猜对了。

通过上文的方式就可以在控制台项目中创建一个host主机,​<code>​ConfigureServices​</code>​也可以正常使用,也可以点出自己需要的内容,例如

第三方库选择Autofac,相信大家都没有意见吧。:happy:

有些时候我们会有一些自己定制化的注入规则,例如按照某个特性标签才注入,某些前缀,某些后缀注入,使用接口方式注入。这些规则如果用自带api实现就会很不舒服,所有使用Autofac。

如何将Autofac继承Core控制台,我是真的找了好多文章才找到一个有用的,然后通过自己的实践测试发现可靠,特此分享给大家。

通过文章的案例,相信大家对Autofac在控制台中的使用已经有了一个初步的理解,下面就是实践了。看的多不如做的多,不要让眼睛记住一,脑子还没记住。

[Asp.net Core依赖注入(Autofac替换IOC容器)](

继续阅读