Skip to content

Commit 2369490

Browse files
committed
增加SerializeToKeyValues可重写方法
1 parent 389d6ff commit 2369490

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

WebApiClientCore/Attributes/ParameterAttributes/FormContentAttribute.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Threading.Tasks;
1+
using System.Collections.Generic;
2+
using System.Threading.Tasks;
23

34
namespace WebApiClientCore.Attributes
45
{
@@ -18,8 +19,18 @@ public class FormContentAttribute : HttpContentAttribute, ICollectionFormatable
1819
/// <param name="context">上下文</param>
1920
protected override async Task SetHttpContentAsync(ApiParameterContext context)
2021
{
21-
var keyValues = context.SerializeToKeyValues().CollectAs(this.CollectionFormat);
22+
var keyValues = this.SerializeToKeyValues(context);
2223
await context.HttpContext.RequestMessage.AddFormFieldAsync(keyValues).ConfigureAwait(false);
2324
}
25+
26+
/// <summary>
27+
/// 序列化参数为keyValue
28+
/// </summary>
29+
/// <param name="context"></param>
30+
/// <returns></returns>
31+
protected virtual IEnumerable<KeyValue> SerializeToKeyValues(ApiParameterContext context)
32+
{
33+
return context.SerializeToKeyValues().CollectAs(this.CollectionFormat);
34+
}
2435
}
2536
}

WebApiClientCore/Attributes/ParameterAttributes/FormDataContentAttribute.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Threading.Tasks;
1+
using System.Collections.Generic;
2+
using System.Threading.Tasks;
23

34
namespace WebApiClientCore.Attributes
45
{
@@ -19,9 +20,19 @@ public class FormDataContentAttribute : HttpContentAttribute, ICollectionFormata
1920
/// <returns></returns>
2021
protected override Task SetHttpContentAsync(ApiParameterContext context)
2122
{
22-
var keyValues = context.SerializeToKeyValues().CollectAs(this.CollectionFormat);
23+
var keyValues = this.SerializeToKeyValues(context);
2324
context.HttpContext.RequestMessage.AddFormDataText(keyValues);
2425
return Task.CompletedTask;
2526
}
27+
28+
/// <summary>
29+
/// 序列化参数为keyValue
30+
/// </summary>
31+
/// <param name="context"></param>
32+
/// <returns></returns>
33+
protected virtual IEnumerable<KeyValue> SerializeToKeyValues(ApiParameterContext context)
34+
{
35+
return context.SerializeToKeyValues().CollectAs(this.CollectionFormat);
36+
}
2637
}
2738
}

0 commit comments

Comments
 (0)