最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2018年12月05日 14:15:59   作者:Ron.liang  
這篇文章主要給大家介紹了關于.NET Core 2.2新增的部分功能使用的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧

前言

美國當?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 默認情況下,字典內地字段名稱將不會被應用 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 內置兩個默認擴展,你可以使用 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)
};
}
}

2.3 看起來是不是簡潔多了

3. API Controller 增加默認的響應處理類型

3.1 在以前的版本中,可以通過在 API 上增加特性 ProducesResponseType 來處理不同的 HttpCode 響應,然后 pranavkm 覺得,我們應該像 Swagger/OpenApi 一樣,增加一個默認的響應處理類型,然后就出現(xiàn)了

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 說實話,上面的這個類,我沒搞懂到底怎么用,有知道的朋友請在評論中回復,我將把它加入文中,感謝。

4. Razor 視圖部分優(yōu)化

4.1 .NET Core 團隊認為,在 Razor 視圖中,如果使用 @Html.Parital 引入分部視圖,可能存在潛在的死鎖情況,所以將 @Html.Parital 變更為

//舊的:
@Html.Partial("_StatusMessage", Model.StatusMessage)

// 新的:
<partial name="_StatusMessage", for="StatusMessage" />

4.2 如果你現(xiàn)在嘗試使用 .NET Core 2.2 創(chuàng)建新的 MVC 項目,你就馬上可以看到該變化了

5. 鉤子

5.1 通過設置環(huán)境變量,可以在程序 Main 方法運行前執(zhí)行一些業(yè)務邏輯,但是 .NET Core 團隊建議,該功能只是一些低級的鉤子,不要用于復雜的業(yè)務,如有需要,還是應該使用依賴注入,有空再嘗試一下該功能,應該會很有意思

結語

在 .NET Core 2.2 版本中,有很多性能上的優(yōu)化,可以看到開源社區(qū)的力量確實強大,本文僅節(jié)選了部分常用功能進行嘗試,相信后續(xù)會有更多朋友的分享

期待 3.0 早日到來

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:

相關文章

最新評論

阜康市| 浦北县| 太康县| 夏津县| 玉龙| 高平市| 临泉县| 定远县| 五家渠市| 乌鲁木齐市| 乌苏市| 西青区| 江安县| 永仁县| 开封县| 图片| 五河县| 甘南县| 茂名市| 阿勒泰市| 井研县| 黔南| 瑞金市| 肥城市| 当涂县| 米脂县| 福建省| 靖边县| 丹巴县| 长治县| 怀安县| 甘肃省| 昆明市| 富民县| 崇州市| 靖安县| 江陵县| 房产| 阳新县| 锡林郭勒盟| 马边|