<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          C# 8.0 可空(Nullable)給ASP.NET Core帶來的坑

          共 1065字,需瀏覽 3分鐘

           ·

          2021-01-27 16:41

          空引用異常,怕是所有.Net 開發(fā)者都遇到的神奇錯誤,它被發(fā)明者稱為“十億美元錯誤”。為了解決它,引入了C# 8.0可空類型,但是這卻給asp.net core帶來了一個坑·····

          Nullable reference types(可為空引用類型)

          可為空引用類型不講武德

          C#8.0 引入了“可為空引用類型”和“不可為空引用類型”,使我們能夠?qū)σ妙愋妥兞康膶傩宰鞒鲋匾暶?。

          我們只需要修改C#8的項目的文件,添加enable,示例如下

            <PropertyGroup>
          <TargetFramework>net5.0</TargetFramework>
          <Nullable>enable</Nullable>
          </PropertyGroup>

          在沒增加這個類型前,代碼長這樣:

          添加后

          代碼就會出現(xiàn)警告,并且生成時也會報告提示:

          當我們賦值null給變量,也會提示

          如果我們確定引用類型確定不為null,可以添加 感嘆號 !

          如果想讓它可空,我們只需要修改為string?即可

          其他功能參考官網(wǎng)
          本文意不在此

          在Asp.net core 使用的坑

          大意了,沒有閃

          這么牛批的東西,于是我開開心心在asp.net core 5用上了

          然后我就遇到了這個錯誤

          這是一個查詢列表方法,查詢條件可以是空字符串,我也沒有設置[Required],這咋就報400錯誤了捏!

          經(jīng)過仔細排查,發(fā)現(xiàn)是可為空引用類型的鍋,當開啟了可為空引用類型,

          這個string 屬性就編譯成了[Required],所以成功被捕捉···

          解決方法1
          老樣子,將屬性修改為string?即可。

          解決方法2
          如果是大范圍修改, 在ConfigureServices方法添加一下代碼,關閉不可為空引用類型的屬性即可

           services.AddControllers(options => options.SuppressImplicitRequiredAttributeForNonNullableReferenceTypes = true);

          后記

          本人不是大佬,只是道路先行者,在落河后,向后來的人大喊一聲,這里有坑,不要過來啊!

          縱然如此,依舊有人重復著落河,重復著吶喊······

          個人博客網(wǎng)站?Blog

          技術交流Q群:1012481075 群內(nèi)有各種流行書籍資料

          文章后續(xù)會在公眾號更新,微信搜索 OneByOneDotNet 即可關注。

          你的一分鼓勵,我的十分動力,點贊免費,感恩回饋。喜歡就點贊評論吧,雙擊66~


          瀏覽 133
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色婷婷导航色 | 婷婷激情综合 | 亚洲三级网址 | 国产视频xxxxxx | 麻豆av免费看 |