成都网站建设设计

将想法与焦点和您一起共享

.NetCoreLinuxcentos7行—IOC模块-创新互联

.net core中可以说是用了全新的IOC模板,定义在Microsoft.Extensions.DependencyInjection下。提供了一套标准的接口。并提供了默认实现。并且大范围使用着,处处都体现着IOC的设计思想。

为香河等地区用户提供了全套网页设计制作服务,及香河网站建设行业解决方案。主营业务为成都网站设计、网站制作、香河网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

Startup的ConfigureServices方法中,集中对服务进行配置。可以看到默认的.net core mvc默认项目已经为我们注入了不少服务。看注释也就懂了,也没什么特别好解释的(^_^)。

.Net Core Linux centos7行—IOC模块

最后2行代码是自定义配置的注入。需要Microsoft.Extensions.Options.ConfigurationExtensions package的支持

.Net Core Linux centos7行—IOC模块

AddOptions 针对Ioptions提供管理,缓存,配置变动自动支持服务,即配置文件有改动会自动反应在应用程序中,且应用程序不需要自动重启。不像以前的web.config.有任何改动都会自动重启。

Configure(IConfiguration).表示配置的内容来自配置文件。

.Net Core Linux centos7行—IOC模块

IndexSetting是新建的一个model,即配置项。

.Net Core Linux centos7行—IOC模块

配置文件中的IndexSetting

.Net Core Linux centos7行—IOC模块

目前.net core ioc有3种获取service方式。

1.ctor注入。

2.action 参数注入

3.容器获取方式

.Net Core Linux centos7行—IOC模块

当然,应对一般情况,这种方式也许够用了。but,现实显然不是这样的。通常我们需要更强大的ioc lib。目前官方推荐的更强大的ioc lib。也是业界大名鼎鼎的autofac。autofac的介绍园子里面一大把,并且写的很详细,很好。就不多介绍了。

官方文档:http://docs.autofac.org/en/latest/integration/aspnetcore.html

asp.net和asp.net core时代的区别主要有几点。

1.Use InstancePerLifetimeScope instead of InstancePerRequest.

简单来说就是生命周期的统一。

2.No more DependencyResolver.

没有以前的DependencyResolver入口了

3.No manual controller registration.

不再需要注册自己的controllerfactory了,也包括owin中的middleware。

需要使用它,当然需要添加它

.Net Core Linux centos7行—IOC模块

针对Startup的ConfigureServices方法做一些改造

.Net Core Linux centos7行—IOC模块

使用任何第三方ioc,都需要返回IServiceProvider。替换系统的默认IServiceProvider。否则不能生效。

然后创建autofac的build,一切照旧,我们就可以愉快的使用autofac啦。

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


文章标题:.NetCoreLinuxcentos7行—IOC模块-创新互联
网站网址:http://chengdu.cdxwcx.cn/article/pjheh.html