国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.NET Core 2.2新增的部分功能使用嘗鮮指南

2024-07-10 12:48:40
字體:
供稿:網(wǎng)友

前言

美國當?shù)貢r間12月4日,微軟2019開發(fā)者大會中發(fā)布了一系列的重磅消息,包含了軟硬件和開源社區(qū)的各種好消息是鋪天蓋地,作為一名普通的開發(fā)者,我第一時間下載了 .NET Core 2.2 的源碼,針對發(fā)布說明逐條瀏覽,并截取了部分常用的功能進行嘗試,下面就與大家分享。話不多說了,來一起看看詳細的介紹吧

1. 對 API 接口統(tǒng)一大小寫的支持

1.1 查看以下接口代碼

  [HttpGet]  public ActionResult<UserInfo> Get()  {   return new UserInfo() { Name = "Ron.liang", RegTime = DateTime.Now };  }  [HttpGet("{id}")]  public ActionResult<Dictionary<string, string>> Get(int id)  {   return new Dictionary<string, string> {    { "Name", "Ron.liang" },    { "RegTime", DateTime.Now.ToString() }   };  }  // 接口 1 輸出  {   name: "Ron.liang",   regTime: "2018-12-05T10:40:37.5090634+08:00"  }  // 接口 2 輸出  {   Name: "Ron.liang",   RegTime: "2018-12-05T10:40:58.5072645+08:00"  }

1.2 默認情況下,字典內(nèi)地字段名稱將不會被應用 CamelCaseNamingStrategy ,所以如果要保持字段名稱大小寫統(tǒng)一的問題,可在 ConfigureServices 中加入 AddJsonOptions(o => o.UseCamelCasing(true))

public void ConfigureServices(IServiceCollection services){services.AddMvc().AddJsonOptions(o => o.UseCamelCasing(false)).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);}

AddJsonOptions 內(nèi)置兩個默認擴展,你可以使用 UseCamelCasing 或者 UseMemberCasing ,如果使用 UseMemberCasing ,表示使用成員字段的大小寫規(guī)則,即不改變大小寫輸出

1.3 有意思的是,AddJsonOptions(o => o.UseCamelCasing(true)) 顯式傳入值的方式是由 JamesNK 這個哥們杠出來的結果,詳見

https://github.com/aspnet/Mvc/pull/7962

2. 復合驗證-驗證模型的擴展

1.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 方法來實現(xiàn)復合驗證

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 IEnumerable<ValidationAttribute> GetValidationAttributes(){return new List<ValidationAttribute>{new RequiredAttribute(),new RegularExpressionAttribute(pattern: "[A-Za-z]*"),new StringLengthAttribute(maximumLength: 20)};}}            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 台州市| 象州县| 涞源县| 专栏| 监利县| 武隆县| 贵溪市| 七台河市| 吴堡县| 宜春市| 无为县| 措美县| 湾仔区| 沙坪坝区| 微博| 区。| 灵川县| 临海市| 惠水县| 德化县| 汉阴县| 台东市| 漠河县| 丹凤县| 丰台区| 寿宁县| 大悟县| 泾源县| 大理市| 中宁县| 金溪县| 汽车| 民和| 常山县| 麻栗坡县| 黑山县| 霍邱县| 金乡县| 治多县| 成安县| 扎鲁特旗|