.Net Core Linux centos7行—IOC模块
.net core中可以说是用了全新的IOC模板,定义在Microsoft.Extensions.DependencyInjection下。提供了一套标准的接口。并提供了默认实现。并且大范围使用着,处处都体现着IOC的设计思想。
Startup的ConfigureServices方法中,集中对服务进行配置。可以看到默认的.net core mvc默认项目已经为我们注入了不少服务。看注释也就懂了,也没什么特别好解释的(^_^)。
最后2行代码是自定义配置的注入。需要Microsoft.Extensions.Options.ConfigurationExtensions package的支持
AddOptions 针对Ioptions<POCOModel>提供管理,缓存,配置变动自动支持服务,即配置文件有改动会自动反应在应用程序中,且应用程序不需要自动重启。不像以前的web.config.有任何改动都会自动重启。
Configure<T>(IConfiguration).表示配置的内容来自配置文件。
IndexSetting是新建的一个model,即配置项。
配置文件中的IndexSetting
目前.net core ioc有3种获取service方式。
1.ctor注入。
2.action 参数注入
3.容器获取方式
当然,应对一般情况,这种方式也许够用了。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。
需要使用它,当然需要添加它
针对Startup的ConfigureServices方法做一些改造
使用任何第三方ioc,都需要返回IServiceProvider。替换系统的默认IServiceProvider。否则不能生效。
然后创建autofac的build,一切照旧,我们就可以愉快的使用autofac啦。
.Net Core Linux centos7行—IOC模块的更多相关文章
- .Net Core Linux centos7行—vscode开发,linux部署运行
前面搭建好啦linux运行环境,下面搭建windows下的开发环境.并完成调试 参考地址:https://www.microsoft.com/net/core#windows. 按照步骤来就好.安装. ...
- .Net Core Linux centos7行—hyper-v安装linux系统和.net core sdk
下载linux系统,选择安装centos7 下载地址:https://www.centos.org/download/ 安装centos7 hyper-v选择新建虚拟机 根据向导一路next,虚拟机代 ...
- .Net Core Linux centos7行—发布程序到生产环境
实验demo现在需要发布到生产环境,发现在发布的时候要考虑到不一致的几个地方. 1.各类配置文件线下,线上不一致. 2.绑定的url不一致,可能是域名不一致,也可能是schema不一致(http,ht ...
- .Net Core Linux centos7行—.net core json 配置文件
.net core 对配置系统做出了大幅度更新,不在局限于之前的*.xml配置方式.现在支持json,xml,ini,in memory,环境变量等等.毫无疑问的是,现在的json配置文件是.net ...
- .Net Core Linux centos7行—安装nginx,运行静态网站
使用编译安装方式安装nginx Nginx下载地址:http://nginx.org/en/download.html.下载Stable version(稳定版就好).当前稳定版:http://ngi ...
- .Net Core Linux centos7行—jenkins linux 构建.net core web app
1.安装jdk.jenkins 是一个java web程序.所以必然需要jdk. yum install java 或者 yum install java-1.8.0-openjdk 2.下载jenk ...
- .NET Core跨平台:.NET Core项目部署到linux(Centos7)
1.开篇说明 a 上篇博客简单的说明了一下 使用.NET Core开发的一个总结,地址是:(http://www.cnblogs.com/hanyinglong/p/6442148.html),那么这 ...
- Linux CentOS7部署ASP.NET Core应用程序,并配置Nginx反向代理服务器
前言: 本篇文章主要讲解的是如何在Linux CentOS7操作系统搭建.NET Core运行环境并发布ASP.NET Core应用程序,以及配置Nginx反向代理服务器.因为公司的项目一直都是托管在 ...
- linux(centos7) 安装nginx
linux(centos7) 安装nginx 1.14(stable) 版本 Nginx配置文件常见结构的从外到内依次是「http」「server」「location」等等,缺省的继承关系是从外到内, ...
随机推荐
- WangSql 1.0源码共享
一,项目背景 现在基本上大大小小的项目都需要和数据库打交道,自然而然数据库操作会有很多地方,而使用传统ADO.NET整个流程有点麻烦,出参都需要手动转换为对象.基于以上,我们需要一个SQL执行工具,能 ...
- 包含修改字体,图片上传等功能的文本输入框-Bootstrap
通过jQuery Bootstrap小插件,框任何一个div转换变成一个富文本编辑框,主要特色: 在Mac和window平台下自动针对常用操作绑定热键 可以拖拽插入图片,支持图片上传(也可以获取移动设 ...
- Json map
1. 返回数据形式 Class returnMsg{ boolean success; String msg; String errorMsg; } 2.问题 当msg中的数据由对象 或 集合 ...
- Mysql性能优化三(分表、增量备份、还原)
接上篇Mysql性能优化二 对表进行水平划分 如果一个表的记录数太多了,比如上千万条,而且需要经常检索,那么我们就有必要化整为零了.如果我拆成100个表,那么每个表只有10万条记录.当然这需要数据在逻 ...
- java接口调用——webservice就是一个RPC而已
很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...
- CSS常用渐变
边框渐变: border-image: -webkit-linear-gradient( red , blue) 30 30; border-image: -moz-linear-gradient( ...
- sea.js模块化编程
* 为什么要模块化? 解决文件依赖 解决命名冲突 ; var var2 = 2; function fn1(){ } function fn2(){ } return { fn1: fn1, fn2: ...
- MvcPager使用的Demo(同步分页)
最近接触了一下MvcPager,昂...来做个笔记吧 其实,我喜欢前后端分离,分页这种东西前端负责的地方,后端不用顾问,这里的MvcPager有点让我想起服务器控件,毕竟用到了HtmlHelper. ...
- 靠谱的datatable转json方法
今天有之前同事问我要datatable转json的方法,以前自己也弄过,但感觉网上有很多不靠谱的方法.所以自己在博客里记录一个,当然也是网上找的,但是这个靠谱一点,起码可以用不会报错,所以叫他靠谱的d ...
- iOS项目iCloud及CloudKit Dashboard运用
CloudKit是苹果推出的基于iCloud的一个云端数据存储服务.其 主要由下面两部分组成: 一个仪表web页面,用于管理公开数据的记录类型. 一组API接口,用于iCloud和设备之间的数据传递. ...