Skip to content

Commit a585bd3

Browse files
committed
Formatter增加Settings属性
1 parent ac71d0b commit a585bd3

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

WebApiClient/Defaults/JsonFormatter.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ namespace WebApiClient.Defaults
99
/// </summary>
1010
public class JsonFormatter : IJsonFormatter
1111
{
12+
/// <summary>
13+
/// 获取或设置配置
14+
/// </summary>
15+
public Action<JsonSerializerSettings> Settings { get; set; }
16+
1217
/// <summary>
1318
/// 将对象列化为json文本
1419
/// </summary>
@@ -28,6 +33,7 @@ public string Serialize(object obj, FormatOptions options)
2833
}
2934

3035
var setting = this.CreateSerializerSettings(options);
36+
this.Settings?.Invoke(setting);
3137
return JsonConvert.SerializeObject(obj, setting);
3238
}
3339

@@ -45,6 +51,7 @@ public object Deserialize(string json, Type objType)
4551
}
4652

4753
var setting = this.CreateSerializerSettings(null);
54+
this.Settings?.Invoke(setting);
4855
return JsonConvert.DeserializeObject(json, objType, setting);
4956
}
5057

WebApiClient/Defaults/KeyValueFormatter.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using Newtonsoft.Json;
2+
using System;
23
using System.Collections.Generic;
34
using System.Linq;
45
using WebApiClient.Contexts;
@@ -11,6 +12,11 @@ namespace WebApiClient.Defaults
1112
/// </summary>
1213
public class KeyValueFormatter : IKeyValueFormatter
1314
{
15+
/// <summary>
16+
/// 获取或设置配置
17+
/// </summary>
18+
public Action<JsonSerializerSettings> Settings { get; set; }
19+
1420
/// <summary>
1521
/// 序列化对象为键值对
1622
/// </summary>
@@ -31,6 +37,7 @@ public IEnumerable<KeyValuePair<string, string>> Serialize(string name, object o
3137
}
3238

3339
var setting = this.CreateSerializerSettings(options);
40+
this.Settings?.Invoke(setting);
3441
var serializer = JsonSerializer.Create(setting);
3542
var keyValuesWriter = new KeyValuesWriter(name);
3643

0 commit comments

Comments
 (0)