Просмотр исходного кода

Merge branch 'master' of https://github.com/ldqk/Masuit.Tools

懒得勤快 3 лет назад
Родитель
Сommit
4ecd99f921
1 измененных файлов с 20 добавлено и 1 удалено
  1. 20 1
      README.md

+ 20 - 1
README.md

@@ -772,7 +772,8 @@ var allchanges=dbContext.GetAllChanges();//获取增删改的实体字段信息
 a.Next(func1).Next(func2).Next(func3);
 "123".Next(s=>s.ToInt32()).Next(x=>x*2).Next(x=>Math.Log(x));
 ```
-### 48.Newtonsoft.Json的只允许字段反序列化行为的契约解释器DeserializeOnlyContractResolver
+### 48.Newtonsoft.Json的只允许字段反序列化行为的契约解释器
+#### DeserializeOnlyContractResolver
 该解释器针对类属性被DeserializeOnlyJsonPropertyAttribute标记的,在反序列化的时候生效,在序列化的时候忽略
 ```csharp
 public class ClassDto
@@ -798,7 +799,25 @@ public class ClassDto
                  options.SerializerSettings.ContractResolver = resolver;
              });
 ```
+#### FallbackJsonPropertyResolver
+该解释器针对某个属性设置多个别名,反序列化时支持多个别名key进行绑定,弥补官方JsonProperty别名属性只能设置单一别名的不足
+```csharp
+    public class ClassDto
+    {
+        [FallbackJsonProperty("MyProperty","a","b")]
+        public string MyProperty { get; set; }
+
+        public int Num { get; set; }
+    }
     
+    JsonConvert.SerializeObject(new MyClass(),new JsonSerializerSettings()
+	{
+		ContractResolver = new FallbackJsonPropertyResolver() // 配置使用FallbackJsonPropertyResolver解释器
+	});
+```
+#### CompositeContractResolver
+该解释器是DeserializeOnlyContractResolver和FallbackJsonPropertyResolver的融合版
+
 ### 49. ASP.NET Core Action同时支持支持FromQuery和FromBody和FromForm的模型绑点器BodyOrDefaultModelBinder
 用法:  
 引入包:`Masuit.Tools.AspNetCore`