序言
使用.NET Core,团队可以更容易专注的在.net core上工作。比如核心类库(如System.Collections)的更改仍然需要与.NET Framework相同的活力,但是ASP.NET Core或Entity Framework Core可以更轻松地进行实质性更改,而不受向后兼容性的限制。.NET Core借鉴了.NET Framework的最佳实践,并将软件工程的最新进展结合在一起。
寒暄、扯淡已经完毕,,,下面是我最近时间对.Net Core整理的相关知识,觉得这些在项目中是最基础且最会应用到的,,,,不喜欢扯理论,直接撸码:
1、浅谈Startup类
2、自定义路由
3、跨域设置
4、自定义读取配置文件信息
5、程序集批量依赖注入
6、使用NLog写入文件日志
7、使用NLog写入数据库日志
8、Nlog标签解读
9、启用Session
10、json数据,自定义日期格式
11、json数据,string类型字段返回为null时默认返回空字符串
12、Json数据,返回字段同实体字段大小写一致
一、浅谈Startup类
在ASP.NET Core应用程序中,使用一个按约定Startup
命名的类Startup
,在Program.cs中使用WebHostBuilderExtensions UseStartup <TStartup>方法指定类,但通常使用系统默认的startup,可以通过startup的构造函数进行依赖注入,startup类中必须包含Configure方法同时可以根据实际情况添加ConfigureServices方法,这两个方法均在应用程序运行时被调用。Startup 类的 执行顺序:构造 -> configureServices ->configure
ConfigureServices方法:主要用于服务配置,比如依赖注入(DI)的配置,使用时该方法必须在Configure方法之前
Configure方法:用于应用程序响应HTTP请求,通过向IApplicationBuilder实例添加中间件组件来配置请求管道
二、自定义路由
在Startup类的Configure方法配置
三、跨域设置
在Startup类的ConfigureServices方法配置
其中“AppDomain”这个名字是自定义的,大家可以根据自己的喜好定义不同的名字,配置完成之后,在控制器上面添加[EnableCors("AppDomain")]特性即可,如果要实现全局的跨域设置,可以在Configure方法里面配置app.UseCors("AppDomain"),即能实现全局的跨域设置
四、自定义读取配置文件信息
这里是写的一个公共方法去读取配置文件appsettings.json
截图看效果
五、程序集批量依赖注入
我们都知道依赖注入主要是为了方便解耦,解除应用程序之间的依赖关系,在我看来DI、IOC这两者差不多是一样的,DI是从应用程序的角度而IOC是从容器的角度,它们主要是对同一件事情的不同角度的描述。然而,,,,,,当我们项目业务比较多的时候,如果要实现多个业务的注入,通常方法是手动一个个的添加注入,这样可能有点太繁琐,所以就想到了利用反射实现批量注入,,,,,,
方法一
帮助类
在Startupl类的ConfigureServices方法中添加
调用(Ps:Core.BLL这个类库里面分别有一个接口IAccountService和一个类AccountService,AccountService类去继承接口IAccountService并实现接口里面的方法)
方法二
六、使用NLog写入文件日志
新建配置文件命名为Nlog.config
在Startup类Configure方法中添加配置
写入日志到文件
七、使用NLog写入数据库日志
添加依赖项:Microsoft.Extensions.Logging和NLog.Extensions.Logging
新建配置文件命名为Nlog.config
同第六项代码一样,也是在Configure方法设置,写入日志到数据库
八、Nlog标签解读
NLog的使用方式基本上和其它的Log库差不多,用于输出日志的级别包括:Trace,Debug,Info,Warn,Error,Fatal
layouts 用来规定布局样式,语法“${属性}”,可以把上下文信息插入到日志中,更多布局渲染器可参考https://github.com/nlog/NLog/wiki/Layout%20Renderers
<rules>标签
十、json数据,自定义日期格式
在webapi数据返回中,经常碰到json数据日期带“T”的问题,可以在Startup类ConfigureServices方法中做如下全局配置
十一、json数据,string类型字段返回为null时默认返回空字符串
帮助类
在Startup类ConfigureServices方法中做如下全局配置
api后台代码
配置前和配置之后数据在浏览器中返回效果截图
大家看效果图有没有发现一个问题,我在没有配置时,实体里面的“UserName”字段默认被转换成了小写,这显然不符合我们的要求,当我配置之后就可以返回同实体里面的字段大小写格式一致了,同时为null的字段默认返回了空字符串,是不是美滋滋,,,,
可能有朋友会说,我只想让返回的数据字段同实体的数据字段一致,而字段为null的值依然还是让他返回null,其实这样也可以,看第十二项配置操作即可。
十二、Json数据,返回字段同实体字段大小写一致配置前和配置之后数据在浏览器中返回效果截图