Skip to content

Commit ac1a141

Browse files
committed
Add experimental support for using IHttpClientFactory from Microsoft
1 parent 4a64dfa commit ac1a141

3 files changed

Lines changed: 14 additions & 2 deletions

File tree

Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<PackageReference Update="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="6.0.1" />
1717
<PackageReference Update="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
1818
<PackageReference Update="Microsoft.Extensions.Configuration.UserSecrets" Version="6.0.1" />
19-
<PackageReference Update="Microsoft.Extensions.Http" Version="7.0.0" />
19+
<PackageReference Update="Microsoft.Extensions.Http" Version="6.0.0" />
2020
<PackageReference Update="Microsoft.Extensions.Hosting" Version="7.0.1" />
2121
<PackageReference Update="Microsoft.Extensions.Hosting.WindowsServices" Version="7.0.0" />
2222
<PackageReference Update="Microsoft.Extensions.Options" Version="7.0.1" />

src/Dibix.Sdk.CodeGeneration/Output/ApiClientImplementationWriter.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ protected override void WriteController(CodeGenerationContext context, CSharpSta
2121
{
2222
context.AddReference<HttpClient>();
2323

24+
if (context.Model.EnableExperimentalFeatures)
25+
context.AddUsing("IHttpClientFactory = System.Net.Http.IHttpClientFactory");
26+
2427
string className = $"{controller.Name}Service";
2528
string interfaceName = $"I{className}";
2629
CSharpAnnotation interfaceDescriptor = new CSharpAnnotation("HttpService", new CSharpValue($"typeof({interfaceName})"));
@@ -112,7 +115,12 @@ private string GenerateMethodBody(ControllerDefinition controller, ActionDefinit
112115
.ToArray();
113116

114117
StringWriter writer = new StringWriter();
115-
writer.WriteLine($"using ({nameof(HttpClient)} client = _httpClientFactory.CreateClient(_httpClientName, BaseAddress))")
118+
writer.Write($"using ({nameof(HttpClient)} client = _httpClientFactory.CreateClient(_httpClientName");
119+
120+
if (!context.Model.EnableExperimentalFeatures)
121+
writer.Write(", BaseAddress");
122+
123+
writer.WriteLine("))")
116124
.WriteLine("{")
117125
.PushIndent();
118126

src/Dibix.Sdk/targets/Dibix.Sdk.targets

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -662,6 +662,10 @@ $(_SqlReferencePath)" />
662662
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.9" ExcludeAssets="runtime" />
663663
</ItemGroup>
664664
665+
<ItemGroup Condition="'$(EnableExperimentalFeatures)' == 'true'">
666+
<PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" ExcludeAssets="runtime" />
667+
</ItemGroup>
668+
665669
<ItemGroup Condition="'%24(TargetFramework)' == '$(_ClientTargetFrameworkNetFx)'">
666670
<Reference Include="System.Net.Http" />
667671
</ItemGroup>

0 commit comments

Comments
 (0)