久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

    <small id='LMOdI'></small><noframes id='LMOdI'>

      <tfoot id='LMOdI'></tfoot>
        <legend id='LMOdI'><style id='LMOdI'><dir id='LMOdI'><q id='LMOdI'></q></dir></style></legend>
          <bdo id='LMOdI'></bdo><ul id='LMOdI'></ul>
        <i id='LMOdI'><tr id='LMOdI'><dt id='LMOdI'><q id='LMOdI'><span id='LMOdI'><b id='LMOdI'><form id='LMOdI'><ins id='LMOdI'></ins><ul id='LMOdI'></ul><sub id='LMOdI'></sub></form><legend id='LMOdI'></legend><bdo id='LMOdI'><pre id='LMOdI'><center id='LMOdI'></center></pre></bdo></b><th id='LMOdI'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='LMOdI'><tfoot id='LMOdI'></tfoot><dl id='LMOdI'><fieldset id='LMOdI'></fieldset></dl></div>

        Json.Net 中的私人二傳手

        Private setters in Json.Net(Json.Net 中的私人二傳手)
        • <legend id='ApDLf'><style id='ApDLf'><dir id='ApDLf'><q id='ApDLf'></q></dir></style></legend>
            • <bdo id='ApDLf'></bdo><ul id='ApDLf'></ul>

              <i id='ApDLf'><tr id='ApDLf'><dt id='ApDLf'><q id='ApDLf'><span id='ApDLf'><b id='ApDLf'><form id='ApDLf'><ins id='ApDLf'></ins><ul id='ApDLf'></ul><sub id='ApDLf'></sub></form><legend id='ApDLf'></legend><bdo id='ApDLf'><pre id='ApDLf'><center id='ApDLf'></center></pre></bdo></b><th id='ApDLf'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='ApDLf'><tfoot id='ApDLf'></tfoot><dl id='ApDLf'><fieldset id='ApDLf'></fieldset></dl></div>

              <small id='ApDLf'></small><noframes id='ApDLf'>

              <tfoot id='ApDLf'></tfoot>

                  <tbody id='ApDLf'></tbody>
                  本文介紹了Json.Net 中的私人二傳手的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我知道有一個屬性可以處理私有設置器,但我有點希望這種行為作為默認值,有沒有辦法做到這一點?除了調整源.如果有這個設置就好了.

                  I know there's an attribute to handle private setters but I kind of want this behavior as a default, is there a way to accomplish this? Except tweaking the source. Would be great if there was a setting for this.

                  推薦答案

                  更新,新答案

                  我為此編寫了一個源代碼分發 NuGet,它安裝了一個帶有兩個自定義合同解析器的文件:

                  Updated, new answer

                  I've written a source distribution NuGet for this, that installs a single file with two custom contract resolvers:

                  • PrivateSetterContractResolver
                  • PrivateSetterCamelCasePropertyNamesContractResolver

                  安裝 NuGet 包:

                  Install-Package JsonNet.ContractResolvers
                  

                  然后只需使用任何解析器:

                  Then just use any of the resolvers:

                  var settings = new JsonSerializerSettings
                  {
                      ContractResolver = new PrivateSetterContractResolver()
                  };
                  
                  var model = JsonConvert.DeserializeObject<Model>(json, settings);
                  

                  你可以在這里閱讀:http://danielwertheim.se/json-net-private-setters-nuget/

                  GitHub 存儲庫:https://github.com/danielwertheim/jsonnet-privatesetterscontractresolvers

                  GitHub repo: https://github.com/danielwertheim/jsonnet-privatesetterscontractresolvers

                  有兩種方法可以解決問題.

                  There are two alternatives that can solve the problem.

                  Alt 1:在反序列化器上

                  ContractResolver.DefaultMembersSearchFlags =
                                               DefaultMembersSearchFlags | BindingFlags.NonPublic;
                  

                  默認的序列化選項支持所有類型的類成員.因此,此解決方案將返回所有私有成員類型,包括字段.我只對支持私人二傳手感興趣.

                  The default serialization option supports all types of class member. Therefore this solution will return all private members types including fields. I'm only interested in also supporting private setters.

                  Alt2:創建自定義 ContractResolver:

                  因此這是更好的選擇,因為我們只檢查屬性.

                  Therefore this is the better options since we just check the properties.

                  public class SisoJsonDefaultContractResolver : DefaultContractResolver 
                  {
                      protected override JsonProperty CreateProperty(
                          MemberInfo member,
                          MemberSerialization memberSerialization)
                      {
                          //TODO: Maybe cache
                          var prop = base.CreateProperty(member, memberSerialization);
                  
                          if (!prop.Writable)
                          {
                              var property = member as PropertyInfo;
                              if (property != null)
                              {
                                  var hasPrivateSetter = property.GetSetMethod(true) != null;
                                  prop.Writable = hasPrivateSetter;
                              }
                          }
                  
                          return prop;
                      }
                  }
                  

                  有關更多信息,請閱讀我的帖子:http://danielwertheim.se/json-net-private-setters/

                  For more information, read my post: http://danielwertheim.se/json-net-private-setters/

                  這篇關于Json.Net 中的私人二傳手的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Ignore whitespace while reading XML(讀取 XML 時忽略空格)
                  XML to LINQ with Checking Null Elements(帶有檢查空元素的 XML 到 LINQ)
                  Reading XML with unclosed tags in C#(在 C# 中讀取帶有未閉合標簽的 XML)
                  Parsing tables, cells with Html agility in C#(在 C# 中使用 Html 敏捷性解析表格、單元格)
                  delete element from xml using LINQ(使用 LINQ 從 xml 中刪除元素)
                  Parse malformed XML(解析格式錯誤的 XML)
                  <i id='T5g9v'><tr id='T5g9v'><dt id='T5g9v'><q id='T5g9v'><span id='T5g9v'><b id='T5g9v'><form id='T5g9v'><ins id='T5g9v'></ins><ul id='T5g9v'></ul><sub id='T5g9v'></sub></form><legend id='T5g9v'></legend><bdo id='T5g9v'><pre id='T5g9v'><center id='T5g9v'></center></pre></bdo></b><th id='T5g9v'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='T5g9v'><tfoot id='T5g9v'></tfoot><dl id='T5g9v'><fieldset id='T5g9v'></fieldset></dl></div>

                1. <tfoot id='T5g9v'></tfoot>
                      <bdo id='T5g9v'></bdo><ul id='T5g9v'></ul>

                        <small id='T5g9v'></small><noframes id='T5g9v'>

                          <tbody id='T5g9v'></tbody>
                          1. <legend id='T5g9v'><style id='T5g9v'><dir id='T5g9v'><q id='T5g9v'></q></dir></style></legend>
                            主站蜘蛛池模板: 成人在线中文字幕 | 日韩成人在线免费视频 | 人人鲁人人莫人人爱精品 | 超碰国产在线 | 国产精品日韩高清伦字幕搜索 | 国产精品v| 成人影院免费视频 | 欧美1区2区| 国产精品久久久久久久久久久久 | 国产精品久久久久999 | 国产ts人妖系列高潮 | 亚洲精品福利视频 | av网站在线看 | 国产丝袜一区二区三区免费视频 | 日韩欧美国产一区二区 | 国产第一页在线播放 | 国产欧美在线 | 国产精品美女一区二区 | 国产精品福利久久久 | 亚洲电影一区 | 美国黄色毛片 | 超碰免费观看 | 91精品国产综合久久久久 | 成人字幕网zmw | 欧美成人一区二免费视频软件 | 亚洲一区二区三区在线视频 | 成人av免费| 免费视频久久久久 | 在线中文字幕亚洲 | 久久一二区 | 亚洲精品久久久久中文字幕欢迎你 | 日一日操一操 | 97伦理影院 | 一区二区三区免费网站 | 91久久精品国产91久久性色tv | 日本激情一区二区 | 91毛片在线看 | 少妇精品亚洲一区二区成人 | 久久国产精品免费一区二区三区 | 成人在线电影在线观看 | 国产午夜在线观看 |