Skip to content

Commit 1860991

Browse files
committed
不公开GetService扩展,以免与DI扩展冲突
1 parent 07ef035 commit 1860991

File tree

4 files changed

+28
-40
lines changed

4 files changed

+28
-40
lines changed

WebApiClientCore/Attributes/ParameterAttributes/HeadersAttribute.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,10 @@ public override Task OnRequestAsync(ApiParameterContext context)
2525
{
2626
foreach (var item in context.SerializeToKeyValues())
2727
{
28-
var value = item.Value;
29-
if (string.IsNullOrEmpty(value) == false)
28+
if (string.IsNullOrEmpty(item.Value) == false)
3029
{
3130
var name = this.UnderlineToMinus ? item.Key.Replace("_", "-") : item.Key;
32-
context.HttpContext.RequestMessage.Headers.TryAddWithoutValidation(name, value);
31+
context.HttpContext.RequestMessage.Headers.TryAddWithoutValidation(name, item.Value);
3332
}
3433
}
3534
return Task.CompletedTask;

WebApiClientCore/BuildinExtensions/CollectionExtensions.cs

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,15 @@ static class CollectionExtensions
1717
/// <returns></returns>
1818
public static IEnumerable<KeyValue> CollectAs(this IEnumerable<KeyValue> collection, CollectionFormat format)
1919
{
20-
if (format == CollectionFormat.Multi)
20+
return format switch
2121
{
22-
return collection;
23-
}
24-
25-
switch (format)
26-
{
27-
case CollectionFormat.Csv:
28-
return collection.CollectAs(@",");
29-
30-
case CollectionFormat.Ssv:
31-
return collection.CollectAs(@" ");
32-
33-
case CollectionFormat.Tsv:
34-
return collection.CollectAs(@"\");
35-
36-
case CollectionFormat.Pipes:
37-
return collection.CollectAs(@"|");
38-
39-
default:
40-
throw new NotImplementedException(format.ToString());
41-
}
22+
CollectionFormat.Multi => collection,
23+
CollectionFormat.Csv => collection.CollectAs(@","),
24+
CollectionFormat.Ssv => collection.CollectAs(@" "),
25+
CollectionFormat.Tsv => collection.CollectAs(@"\"),
26+
CollectionFormat.Pipes => collection.CollectAs(@"|"),
27+
_ => throw new NotImplementedException(format.ToString()),
28+
};
4229
}
4330

4431
/// <summary>

WebApiClientCore/ServiceProviderExtensions.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,11 @@ public static class ServiceProviderExtensions
1313
private static readonly JsonSerializer jsonSerializer = new JsonSerializer();
1414
private static readonly KeyValueSerializer keyValueSerializer = new KeyValueSerializer();
1515

16-
/// <summary>
17-
/// 获取服务
18-
/// </summary>
19-
/// <typeparam name="T"></typeparam>
20-
/// <param name="provider"></param>
21-
/// <returns></returns>
22-
[return: MaybeNull]
23-
public static T GetService<T>(this IServiceProvider provider)
24-
{
25-
return (T)provider.GetService(typeof(T));
26-
}
27-
2816
/// <summary>
2917
/// 尝试获取IXmlSerializer
3018
/// 获取不到则使用默认实例
3119
/// </summary>
32-
/// <param name="provider"></param>
20+
/// <param name="provider">服务提供者</param>
3321
/// <returns></returns>
3422
public static IXmlSerializer GetXmlSerializer(this IServiceProvider provider)
3523
{
@@ -40,7 +28,7 @@ public static IXmlSerializer GetXmlSerializer(this IServiceProvider provider)
4028
/// 尝试获取IJsonSerializer
4129
/// 获取不到则使用默认实例
4230
/// </summary>
43-
/// <param name="provider"></param>
31+
/// <param name="provider">服务提供者</param>
4432
/// <returns></returns>
4533
public static IJsonSerializer GetJsonSerializer(this IServiceProvider provider)
4634
{
@@ -51,11 +39,23 @@ public static IJsonSerializer GetJsonSerializer(this IServiceProvider provider)
5139
/// 尝试获取IKeyValueSerializer
5240
/// 获取不到则使用默认实例
5341
/// </summary>
54-
/// <param name="provider"></param>
42+
/// <param name="provider">服务提供者</param>
5543
/// <returns></returns>
5644
public static IKeyValueSerializer GetKeyValueSerializer(this IServiceProvider provider)
5745
{
5846
return provider.GetService<IKeyValueSerializer>() ?? keyValueSerializer;
5947
}
48+
49+
/// <summary>
50+
/// 获取服务
51+
/// </summary>
52+
/// <typeparam name="T"></typeparam>
53+
/// <param name="provider">服务提供者</param>
54+
/// <returns></returns>
55+
[return: MaybeNull]
56+
internal static T GetService<T>(this IServiceProvider provider)
57+
{
58+
return (T)provider.GetService(typeof(T));
59+
}
6060
}
6161
}

WebApiClientCore/System.Net.Http/HttpContentExtensions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public static class HttpContentExtensions
1212
/// 读取为二进制数组并转换为utf8编码
1313
/// </summary>
1414
/// <param name="httpContent"></param>
15+
/// <exception cref="ArgumentException"></exception>
1516
/// <returns></returns>
1617
public static Task<byte[]> ReadAsUtf8ByteArrayAsync(this HttpContent httpContent)
1718
{
@@ -23,12 +24,13 @@ public static Task<byte[]> ReadAsUtf8ByteArrayAsync(this HttpContent httpContent
2324
/// </summary>
2425
/// <param name="httpContent"></param>
2526
/// <param name="dstEncoding">目标编码</param>
27+
/// <exception cref="ArgumentException"></exception>
2628
/// <returns></returns>
2729
public static async Task<byte[]> ReadAsByteArrayAsync(this HttpContent httpContent, Encoding dstEncoding)
2830
{
2931
var byteArray = await httpContent.ReadAsByteArrayAsync().ConfigureAwait(false);
3032
var charSet = httpContent.Headers.ContentType?.CharSet;
31-
var encoding = charSet == null ? Encoding.UTF8 : Encoding.GetEncoding(charSet);
33+
var encoding = string.IsNullOrEmpty(charSet) ? Encoding.UTF8 : Encoding.GetEncoding(charSet);
3234

3335
return encoding.Equals(dstEncoding)
3436
? byteArray

0 commit comments

Comments
 (0)