Skip to content

Commit dd4143b

Browse files
authored
[csharp] Added .net8 (#17075)
* added .net8 * change .net version in the github action * upgrade manual sample
1 parent a460b7e commit dd4143b

File tree

30 files changed

+91
-70
lines changed

30 files changed

+91
-70
lines changed

.github/workflows/samples-dotnet.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
- uses: actions/checkout@v4
4646
- uses: actions/setup-dotnet@v3.2.0
4747
with:
48-
dotnet-version: '7.0.x'
48+
dotnet-version: '8.0.x'
4949
- name: Build
5050
working-directory: ${{ matrix.sample }}
5151
run: dotnet build Org.OpenAPITools.sln

docs/generators/csharp.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
4545
|releaseNote|Release note, default to 'Minor update'.| |Minor update|
4646
|returnICollection|Return ICollection<T> instead of the concrete type.| |false|
4747
|sourceFolder|source folder for generated code| |src|
48-
|targetFramework|The target .NET framework version. To target multiple frameworks, use `;` as the separator, e.g. `netstandard2.1;netcoreapp3.1`|<dl><dt>**netstandard1.3**</dt><dd>.NET Standard 1.3</dd><dt>**netstandard1.4**</dt><dd>.NET Standard 1.4</dd><dt>**netstandard1.5**</dt><dd>.NET Standard 1.5</dd><dt>**netstandard1.6**</dt><dd>.NET Standard 1.6</dd><dt>**netstandard2.0**</dt><dd>.NET Standard 2.0</dd><dt>**netstandard2.1**</dt><dd>.NET Standard 2.1</dd><dt>**net47**</dt><dd>.NET Framework 4.7</dd><dt>**net48**</dt><dd>.NET Framework 4.8</dd><dt>**net6.0**</dt><dd>.NET 6.0 (End of Support 12 November 2024)</dd><dt>**net7.0**</dt><dd>.NET 7.0</dd></dl>|net7.0|
48+
|targetFramework|The target .NET framework version. To target multiple frameworks, use `;` as the separator, e.g. `netstandard2.1;netcoreapp3.1`|<dl><dt>**netstandard1.3**</dt><dd>.NET Standard 1.3</dd><dt>**netstandard1.4**</dt><dd>.NET Standard 1.4</dd><dt>**netstandard1.5**</dt><dd>.NET Standard 1.5</dd><dt>**netstandard1.6**</dt><dd>.NET Standard 1.6</dd><dt>**netstandard2.0**</dt><dd>.NET Standard 2.0</dd><dt>**netstandard2.1**</dt><dd>.NET Standard 2.1</dd><dt>**net47**</dt><dd>.NET Framework 4.7</dd><dt>**net48**</dt><dd>.NET Framework 4.8</dd><dt>**net6.0**</dt><dd>.NET 6.0 (End of Support 12 November 2024)</dd><dt>**net7.0**</dt><dd>.NET 7.0</dd><dt>**net8.0**</dt><dd>.NET 8.0</dd></dl>|net8.0|
4949
|useCollection|Deserialize array types to Collection&lt;T&gt; instead of List&lt;T&gt;.| |false|
5050
|useDateTimeOffset|Use DateTimeOffset to model date-time properties| |false|
5151
|useOneOfDiscriminatorLookup|Use the discriminator's mapping in oneOf to speed up the model lookup. IMPORTANT: Validation (e.g. one and only one match in oneOf's schemas) will be skipped.| |false|

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen {
7878
protected static final String NET_48_OR_LATER = "net48OrLater";
7979
protected static final String NET_60_OR_LATER = "net60OrLater";
8080
protected static final String NET_70_OR_LATER = "net70OrLater";
81+
protected static final String NET_80_OR_LATER = "net80OrLater";
8182

8283
@SuppressWarnings("hiding")
8384
private final Logger LOGGER = LoggerFactory.getLogger(CSharpClientCodegen.class);
@@ -91,7 +92,8 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen {
9192
FrameworkStrategy.NETFRAMEWORK_4_7,
9293
FrameworkStrategy.NETFRAMEWORK_4_8,
9394
FrameworkStrategy.NET_6_0,
94-
FrameworkStrategy.NET_7_0
95+
FrameworkStrategy.NET_7_0,
96+
FrameworkStrategy.NET_8_0
9597
);
9698
private static FrameworkStrategy latestFramework = frameworkStrategies.get(frameworkStrategies.size() - 1);
9799
protected final Map<String, String> frameworks;
@@ -1328,6 +1330,8 @@ private static abstract class FrameworkStrategy {
13281330
};
13291331
static FrameworkStrategy NET_7_0 = new FrameworkStrategy("net7.0", ".NET 7.0", "net7.0", Boolean.FALSE) {
13301332
};
1333+
static FrameworkStrategy NET_8_0 = new FrameworkStrategy("net8.0", ".NET 8.0", "net8.0", Boolean.FALSE) {
1334+
};
13311335
protected String name;
13321336
protected String description;
13331337
protected String testTargetFramework;
@@ -1451,6 +1455,17 @@ protected void configureAdditionalPropertiesForFrameworks(final Map<String, Obje
14511455
properties.put(NET_48_OR_LATER, true);
14521456
properties.put(NET_60_OR_LATER, true);
14531457
properties.put(NET_70_OR_LATER, true);
1458+
} else if (strategies.stream().anyMatch(p -> "net8.0".equals(p.name))) {
1459+
properties.put(NET_STANDARD_14_OR_LATER, true);
1460+
properties.put(NET_STANDARD_15_OR_LATER, true);
1461+
properties.put(NET_STANDARD_16_OR_LATER, true);
1462+
properties.put(NET_STANDARD_20_OR_LATER, true);
1463+
properties.put(NET_STANDARD_21_OR_LATER, true);
1464+
properties.put(NET_47_OR_LATER, true);
1465+
properties.put(NET_48_OR_LATER, true);
1466+
properties.put(NET_60_OR_LATER, true);
1467+
properties.put(NET_70_OR_LATER, true);
1468+
properties.put(NET_80_OR_LATER, true);
14541469
} else {
14551470
throw new RuntimeException("Unhanlded case");
14561471
}

modules/openapi-generator/src/main/resources/csharp/netcore_project.mustache

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
<PackageReference Include="RestSharp" Version="110.2.0" />
3636
{{/useRestSharp}}
3737
{{#useGenericHost}}
38-
<PackageReference Include="Microsoft.Extensions.Http" Version="{{#lambda.first}}{{#netStandard}}5.0.0 {{/netStandard}}{{#net47}}7.0.0 {{/net47}}{{#net48}}7.0.0 {{/net48}}{{#net6.0}}6.0.0 {{/net6.0}}{{#net70OrLater}}7.0.0{{/net70OrLater}}{{/lambda.first}}" />
39-
<PackageReference Include="Microsoft.Extensions.Hosting" Version="{{#lambda.first}}{{#netStandard}}5.0.0 {{/netStandard}}{{#net47}}7.0.0 {{/net47}}{{#net48}}7.0.0 {{/net48}}{{#net6.0}}6.0.1 {{/net6.0}}{{#net70OrLater}}7.0.1 {{/net70OrLater}}{{/lambda.first}}" />
38+
<PackageReference Include="Microsoft.Extensions.Http" Version="{{#lambda.first}}{{#netStandard}}5.0.0 {{/netStandard}}{{#net47}}7.0.0 {{/net47}}{{#net48}}7.0.0 {{/net48}}{{#net6.0}}6.0.0 {{/net6.0}}{{#net7.0}}7.0.0 {{/net7.0}}{{#net8.0}}8.0.0 {{/net8.0}}{{/lambda.first}}" />
39+
<PackageReference Include="Microsoft.Extensions.Hosting" Version="{{#lambda.first}}{{#netStandard}}5.0.0 {{/netStandard}}{{#net47}}7.0.0 {{/net47}}{{#net48}}7.0.0 {{/net48}}{{#net6.0}}6.0.1 {{/net6.0}}{{#net7.0}}7.0.1 {{/net7.0}}{{#net8.0}}8.0.0 {{/net8.0}}{{/lambda.first}}" />
4040
{{#supportsRetry}}
41-
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="{{#lambda.first}}{{#netStandard}}5.0.1 {{/netStandard}}{{#net47}}7.0.0 {{/net47}}{{#net48}}7.0.0 {{/net48}}{{#net6.0}}6.0.19 {{/net6.0}}{{#net70OrLater}}7.0.11 {{/net70OrLater}}{{/lambda.first}}" />
41+
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="{{#lambda.first}}{{#netStandard}}5.0.1 {{/netStandard}}{{#net47}}7.0.0 {{/net47}}{{#net48}}7.0.0 {{/net48}}{{#net6.0}}6.0.19 {{/net6.0}}{{#net7.0}}7.0.11 {{/net7.0}}{{#net8.0}}8.0.0 {{/net8.0}}{{/lambda.first}}" />
4242
{{/supportsRetry}}
4343
{{/useGenericHost}}
4444
{{^useGenericHost}}

modules/openapi-generator/src/main/resources/csharp/netcore_testproject.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="{{^netStandard}}17.7.2{{/netStandard}}{{#netStandard}}15.9.2{{/netStandard}}" />
12+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="{{^netStandard}}17.8.0{{/netStandard}}{{#netStandard}}15.9.2{{/netStandard}}" />
1313
<PackageReference Include="xunit" Version="{{^netStandard}}2.6.1{{/netStandard}}{{#netStandard}}2.4.2{{/netStandard}}" />
1414
<PackageReference Include="xunit.runner.visualstudio" Version="{{^netStandard}}2.5.3{{/netStandard}}{{#netStandard}}2.4.5{{/netStandard}}" />
1515
</ItemGroup>

samples/client/echo_api/csharp-restsharp/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
12+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
1313
<PackageReference Include="xunit" Version="2.6.1" />
1414
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3" />
1515
</ItemGroup>

samples/client/petstore/csharp-restsharp-name-parameter-mappings/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
12+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
1313
<PackageReference Include="xunit" Version="2.6.1" />
1414
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3" />
1515
</ItemGroup>

samples/client/petstore/csharp/OpenAPIClient-generichost-manual-tests/ManualTests.Latest.UseSourceGeneration/ManualTests.Latest.UseSourceGeneration.csproj

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net7.0</TargetFramework>
4+
<TargetFramework>net8.0</TargetFramework>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77

@@ -10,10 +10,13 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
14-
<PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
15-
<PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
16-
<PackageReference Include="coverlet.collector" Version="3.1.2" />
13+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
14+
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
15+
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
16+
<PackageReference Include="coverlet.collector" Version="6.0.0">
17+
<PrivateAssets>all</PrivateAssets>
18+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
19+
</PackageReference>
1720
</ItemGroup>
1821

1922
<ItemGroup>

samples/client/petstore/csharp/OpenAPIClient-generichost-manual-tests/OpenAPIClient-generichost-manual-tests/OpenAPIClient-generichost-manual-tests.csproj

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net7.0</TargetFramework>
4+
<TargetFramework>net8.0</TargetFramework>
55
<RootNamespace>OpenAPIClient_generichost_manual_tests</RootNamespace>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<Nullable>enable</Nullable>
@@ -11,10 +11,13 @@
1111
</PropertyGroup>
1212

1313
<ItemGroup>
14-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
15-
<PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
16-
<PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
17-
<PackageReference Include="coverlet.collector" Version="3.1.2" />
14+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
15+
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
16+
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
17+
<PackageReference Include="coverlet.collector" Version="6.0.0">
18+
<PrivateAssets>all</PrivateAssets>
19+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
20+
</PackageReference>
1821
</ItemGroup>
1922

2023
<ItemGroup>

samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt-useSourceGeneration/src/UseSourceGeneration.Test/UseSourceGeneration.Test.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
<PropertyGroup>
44
<AssemblyName>UseSourceGeneration.Test</AssemblyName>
55
<RootNamespace>UseSourceGeneration.Test</RootNamespace>
6-
<TargetFramework>net7.0</TargetFramework>
6+
<TargetFramework>net8.0</TargetFramework>
77
<IsPackable>false</IsPackable>
88
<Nullable>enable</Nullable>
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
12+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
1313
<PackageReference Include="xunit" Version="2.6.1" />
1414
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3" />
1515
</ItemGroup>

0 commit comments

Comments
 (0)