汉邦未来网站开发有限公司,所有浏览器大全,兰州网站建设|兰州网站制作|兰州网站设计公司|兰州网络公司,活动策划公司主要做什么前言美国当地时间12月4日#xff0c;微软2019开发者大会中发布了一系列的重磅消息#xff0c;包含了软硬件和开源社区的各种好消息是铺天盖地#xff0c;作为一名普通的开发者#xff0c;我第一时间下载了 .NET Core 2.2 的源码#xff0c;针对发布说明逐条浏览#xff0… 前言 美国当地时间12月4日微软2019开发者大会中发布了一系列的重磅消息包含了软硬件和开源社区的各种好消息是铺天盖地作为一名普通的开发者我第一时间下载了 .NET Core 2.2 的源码针对发布说明逐条浏览并截取了部分常用的功能进行尝试下面就与大家分享。1. 对 API 接口统一大小写的支持1.1 查看以下接口代码1.2 默认情况下字典内地字段名称将不会被应用 CamelCaseNamingStrategy 所以如果要保持字段名称大小写统一的问题可在 ConfigureServices 中加入 AddJsonOptions(o o.UseCamelCasing(true))AddJsonOptions 内置两个默认扩展你可以使用 UseCamelCasing 或者 UseMemberCasing 如果使用 UseMemberCasing 表示使用成员字段的大小写规则即不改变大小写输出1.3 有意思的是AddJsonOptions(o o.UseCamelCasing(true)) 显式传入值的方式是由 JamesNK 这个哥们杠出来的结果详见https://github.com/aspnet/Mvc/pull/79622. 复合验证-验证模型的扩展1.1 在之前的版本中如果希望对一个属性应用多个验证必须书写多个验证类如2.2 在 .NET Core 2.2 以后的版本中你可以通过扩展来避免这个问题通过继承自 ValidationProviderAttribute 并重写 GetValidationAttributes 方法来实现复合验证2.3 看起来是不是简洁多了3. API Controller 增加默认的响应处理类型3.1 在以前的版本中可以通过在 API 上增加特性 ProducesResponseType 来处理不同的 HttpCode 响应然后 pranavkm 觉得我们应该像 Swagger/OpenApi 一样增加一个默认的响应处理类型然后就出现了3.2 说实话上面的这个类我没搞懂到底怎么用有知道的朋友请在评论中回复我将把它加入文中感谢。4. Razor 视图部分优化4.1 .NET Core 团队认为在 Razor 视图中如果使用 Html.Parital 引入分部视图可能存在潜在的死锁情况所以将 Html.Parital 变更为 //旧的Html.Partial(_StatusMessage, Model.StatusMessage) // 新的partial name_StatusMessage, forStatusMessage /前言美国当地时间12月4日微软2019开发者大会中发布了一系列的重磅消息包含了软硬件和开源社区的各种好消息是铺天盖地作为一名普通的开发者我第一时间下载了 .NET Core 2.2 的源码针对发布说明逐条浏览并截取了部分常用的功能进行尝试下面就与大家分享。一、 对 API 接口统一大小写的支持1.1 查看以下接口代码[HttpGet]public ActionResultUserInfo Get(){ return new UserInfo() { Name Ron.liang, RegTime DateTime.Now };}[HttpGet({id})]public ActionResultDictionarystring, string Get(int id){ return new Dictionarystring, string { { Name, Ron.liang }, { RegTime, DateTime.Now.ToString() } };}// 接口 1 输出{ name: Ron.liang, regTime: 2018-12-05T10:40:37.509063408:00}// 接口 2 输出{ Name: Ron.liang, RegTime: 2018-12-05T10:40:58.507264508:00}1.2 、默认情况下字典内地字段名称将不会被应用 CamelCaseNamingStrategy 所以如果要保持字段名称大小写统一的问题可在 ConfigureServices 中加入 AddJsonOptions(o o.UseCamelCasing(true))public void ConfigureServices(IServiceCollection services){ services.AddMvc().AddJsonOptions(o o.UseCamelCasing(false)).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);}AddJsonOptions 内置两个默认扩展你可以使用 UseCamelCasing 或者 UseMemberCasing 如果使用 UseMemberCasing 表示使用成员字段的大小写规则即不改变大小写输出1.3 、有意思的是AddJsonOptions(o o.UseCamelCasing(true)) 显式传入值的方式是由 JamesNK 这个哥们杠出来的结果详见https://github.com/aspnet/Mvc/pull/7962二、 复合验证-验证模型的扩展2.1、 在之前的版本中如果希望对一个属性应用多个验证必须书写多个验证类如public class UserInfo{ [StringLength(20), RegularExpression(^[a-zA-Z]$)] public string Name { get; set; } [StringLength(20), RegularExpression(^[a-zA-Z]$)] public string Title { get; set; } public DateTime RegTime { get; set; }}2.2、 在 .NET Core 2.2 以后的版本中你可以通过扩展来避免这个问题通过继承自 ValidationProviderAttribute 并重写 GetValidationAttributes 方法来实现复合验证public class UserInfo{ [Name] public string Name { get; set; } [Name] public string Title { get; set; } public DateTime RegTime { get; set; }}public class NameAttribute : ValidationProviderAttribute{ public override IEnumerableValidationAttribute GetValidationAttributes() { return new ListValidationAttribute { new RequiredAttribute(), new RegularExpressionAttribute(pattern: [A-Za-z]*), new StringLengthAttribute(maximumLength: 20) }; }}2.3 、看起来是不是简洁多了三、 API Controller 增加默认的响应处理类型3.1 、在以前的版本中可以通过在 API 上增加特性 ProducesResponseType 来处理不同的 HttpCode 响应然后 pranavkm 觉得我们应该像 Swagger/OpenApi 一样增加一个默认的响应处理类型然后就出现了namespace Microsoft.AspNetCore.Mvc{ /// summary /// A filter that specifies the type of the value and status code returned by the action. /// /summary [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple true, Inherited true)] public class ProducesResponseTypeAttribute : Attribute, IApiResponseMetadataProvider{ ....}3.2 、说实话上面的这个类我没搞懂到底怎么用有知道的朋友请在评论中回复我将把它加入文中感谢。四、Razor 视图部分优化4.1 、.NET Core 团队认为在 Razor 视图中如果使用 Html.Parital 引入分部视图可能存在潜在的死锁情况所以将 Html.Parital 变更为//旧的Html.Partial(_StatusMessage, Model.StatusMessage)// 新的partial name_StatusMessage, forStatusMessage /4.2、 如果你现在尝试使用 .NET Core 2.2 创建新的 MVC 项目你就马上可以看到该变化了五、钩子通过设置环境变量可以在程序 Main 方法运行前执行一些业务逻辑但是 .NET Core 团队建议该功能只是一些低级的钩子不要用于复杂的业务如有需要还是应该使用依赖注入有空再尝试一下该功能应该会很有意思结语在 .NET Core 2.2 版本中有很多性能上的优化可以看到开源社区的力量确实强大本文仅节选了部分常用功能进行尝试相信后续会有更多朋友的分享期待 3.0 早日到来原文地址:https://www.cnblogs.com/viter/p/10070248.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com