Skip to content

Commit bd538f2

Browse files
Merge pull request #31 from atc-net/feature/IContractSerializer-overload-parameter
Add IContractSerializer overload parameter
2 parents 936882c + 656980d commit bd538f2

File tree

4 files changed

+26
-10
lines changed

4 files changed

+26
-10
lines changed

Directory.Build.props

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@
4343
<ItemGroup Label="Code Analyzers">
4444
<PackageReference Include="AsyncFixer" Version="1.6.0" PrivateAssets="All" />
4545
<PackageReference Include="Asyncify" Version="0.9.7" PrivateAssets="All" />
46-
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159" PrivateAssets="All" />
46+
<PackageReference Include="Meziantou.Analyzer" Version="2.0.160" PrivateAssets="All" />
4747
<PackageReference Include="SecurityCodeScan.VS2019" Version="5.6.7" PrivateAssets="All" />
4848
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.435" PrivateAssets="All" />
49-
<PackageReference Include="SonarAnalyzer.CSharp" Version="9.28.0.94264" PrivateAssets="All" />
49+
<PackageReference Include="SonarAnalyzer.CSharp" Version="9.29.0.95321" PrivateAssets="All" />
5050
</ItemGroup>
5151

5252
</Project>

src/Atc.Rest.Client/Atc.Rest.Client.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
<ItemGroup>
1616
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
17-
<PackageReference Include="System.Text.Json" Version="8.0.3" />
17+
<PackageReference Include="System.Text.Json" Version="8.0.4" />
1818
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
1919
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
2020
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" />

src/Atc.Rest.Client/Options/ServiceCollectionExtensions.cs

+21-5
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ public static IServiceCollection AddAtcRestClient<TOptions>(
77
this IServiceCollection services,
88
string clientName,
99
TOptions options,
10-
Action<IHttpClientBuilder>? httpClientBuilder = default)
10+
Action<IHttpClientBuilder>? httpClientBuilder = default,
11+
IContractSerializer? contractSerializer = null)
1112
where TOptions : AtcRestClientOptions, new()
1213
{
1314
services.AddSingleton(options);
@@ -23,7 +24,14 @@ public static IServiceCollection AddAtcRestClient<TOptions>(
2324

2425
// Register utilities
2526
services.AddSingleton<IHttpMessageFactory, HttpMessageFactory>();
26-
services.AddSingleton<IContractSerializer, DefaultJsonContractSerializer>();
27+
if (contractSerializer is null)
28+
{
29+
services.AddSingleton<IContractSerializer, DefaultJsonContractSerializer>();
30+
}
31+
else
32+
{
33+
services.AddSingleton(contractSerializer);
34+
}
2735

2836
return services;
2937
}
@@ -34,9 +42,10 @@ public static IServiceCollection AddAtcRestClient(
3442
string clientName,
3543
Uri baseAddress,
3644
TimeSpan timeout,
37-
Action<IHttpClientBuilder>? httpClientBuilder = default)
45+
Action<IHttpClientBuilder>? httpClientBuilder = default,
46+
IContractSerializer? contractSerializer = null)
3847
{
39-
var clientBuilder = services.AddHttpClient(clientName, (s, c) =>
48+
var clientBuilder = services.AddHttpClient(clientName, (_, c) =>
4049
{
4150
c.BaseAddress = baseAddress;
4251
c.Timeout = timeout;
@@ -46,7 +55,14 @@ public static IServiceCollection AddAtcRestClient(
4655

4756
// Register utilities
4857
services.AddSingleton<IHttpMessageFactory, HttpMessageFactory>();
49-
services.AddSingleton<IContractSerializer, DefaultJsonContractSerializer>();
58+
if (contractSerializer is null)
59+
{
60+
services.AddSingleton<IContractSerializer, DefaultJsonContractSerializer>();
61+
}
62+
else
63+
{
64+
services.AddSingleton(contractSerializer);
65+
}
5066

5167
return services;
5268
}

test/Atc.Rest.Client.Tests/Atc.Rest.Client.Tests.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
<ItemGroup>
1010
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
11-
<PackageReference Include="xunit" Version="2.8.1" />
12-
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.1">
11+
<PackageReference Include="xunit" Version="2.9.0" />
12+
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
1313
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1414
<PrivateAssets>all</PrivateAssets>
1515
</PackageReference>

0 commit comments

Comments
 (0)