Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion .github/workflows/samples-dotnet-fx.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
- samples/client/petstore/csharp/generichost/net4.8/**
jobs:
build:
name: Build .Net projects
name: Build .Net Framework projects
runs-on: windows-latest
strategy:
fail-fast: false
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/samples-dotnet-standard.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ on:
- samples/client/petstore/csharp/unityWebRequest/standard2.0/**
jobs:
build:
name: Build .Net projects
name: Build .Net Standard projects
runs-on: windows-latest
strategy:
fail-fast: false
Expand Down
59 changes: 59 additions & 0 deletions .github/workflows/samples-dotnet10.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Samples C# .Net 10 Clients

on:
push:
paths:
- samples/client/petstore/csharp/generichost/latest/**
- samples/client/petstore/csharp/generichost/net10/**
- samples/client/petstore/csharp/httpclient/net10/**
- samples/client/petstore/csharp/restsharp/net10/**
- samples/client/petstore/csharp/unityWebRequest/net10/**
pull_request:
paths:
- samples/client/petstore/csharp/generichost/latest/**
- samples/client/petstore/csharp/generichost/net10/**
- samples/client/petstore/csharp/httpclient/net10/**
- samples/client/petstore/csharp/restsharp/net10/**
- samples/client/petstore/csharp/unityWebRequest/net10/**
jobs:
build:
name: Build .Net 10 projects
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
sample:
- samples/client/petstore/csharp/generichost/latest/ComposedEnum
- samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf
- samples/client/petstore/csharp/generichost/latest/Tags
- samples/client/petstore/csharp/generichost/latest/HelloWorld
- samples/client/petstore/csharp/generichost/latest/OneOfList
- samples/client/petstore/csharp/generichost/net10/AllOf
- samples/client/petstore/csharp/generichost/net10/AnyOf
- samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare
- samples/client/petstore/csharp/generichost/net10/FormModels
# - samples/client/petstore/csharp/generichost/net10/ManualPetstoreTests
# - samples/client/petstore/csharp/generichost/net10/ManualSourceGenerationTests
- samples/client/petstore/csharp/generichost/net10/NullReferenceTypes
- samples/client/petstore/csharp/generichost/net10/OneOf
- samples/client/petstore/csharp/generichost/net10/Petstore
- samples/client/petstore/csharp/generichost/net10/SourceGeneration
- samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate
# restsharp
- samples/client/petstore/csharp/restsharp/net10/EnumMappings
# httpclient
- samples/client/petstore/csharp/httpclient/net10/Petstore
- samples/client/petstore/csharp/httpclient/net10/Petstore-nonPublicApi
# unity
# - samples/client/petstore/csharp/unityWebRequest/net10/Petstore
steps:
- uses: actions/checkout@v5
- uses: actions/setup-dotnet@v5.0.0
with:
dotnet-version: '10.x'
- name: Build
working-directory: ${{ matrix.sample }}
run: dotnet build Org.OpenAPITools.sln
- name: Test
working-directory: ${{ matrix.sample }}
run: dotnet test Org.OpenAPITools.sln
2 changes: 1 addition & 1 deletion .github/workflows/samples-dotnet8.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ on:
- samples/client/petstore/csharp/unityWebRequest/net8/**
jobs:
build:
name: Build .Net projects
name: Build .Net 8 projects
runs-on: ubuntu-latest
strategy:
fail-fast: false
Expand Down
9 changes: 1 addition & 8 deletions .github/workflows/samples-dotnet9.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,24 @@ name: Samples C# .Net 9 Clients
on:
push:
paths:
- samples/client/petstore/csharp/generichost/latest/**
- samples/client/petstore/csharp/generichost/net9/**
- samples/client/petstore/csharp/httpclient/net9/**
- samples/client/petstore/csharp/restsharp/net9/**
- samples/client/petstore/csharp/unityWebRequest/net9/**
pull_request:
paths:
- samples/client/petstore/csharp/generichost/latest/**
- samples/client/petstore/csharp/generichost/net9/**
- samples/client/petstore/csharp/httpclient/net9/**
- samples/client/petstore/csharp/restsharp/net9/**
- samples/client/petstore/csharp/unityWebRequest/net9/**
jobs:
build:
name: Build .Net projects
name: Build .Net 9 projects
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
sample:
- samples/client/petstore/csharp/generichost/latest/ComposedEnum
- samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf
- samples/client/petstore/csharp/generichost/latest/Tags
- samples/client/petstore/csharp/generichost/latest/HelloWorld
- samples/client/petstore/csharp/generichost/latest/OneOfList
- samples/client/petstore/csharp/generichost/net9/AllOf
- samples/client/petstore/csharp/generichost/net9/AnyOf
- samples/client/petstore/csharp/generichost/net9/AnyOfNoCompare
Expand Down
14 changes: 14 additions & 0 deletions bin/configs/csharp-generichost-net10-allOf.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# for csharp generichost
generatorName: csharp
outputDir: samples/client/petstore/csharp/generichost/net10/AllOf
inputSpec: modules/openapi-generator/src/test/resources/3_0/allOf.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp
additionalProperties:
packageGuid: '{321C8C3F-0156-40C1-AE42-D59761FB9B6C}'
useCompareNetObjects: true
disallowAdditionalPropertiesIfNotPresent: false
nullableReferenceTypes: true
equatable: true
targetFramework: net10.0
modelPropertySorting: alphabetical
operationParameterSorting: alphabetical
14 changes: 14 additions & 0 deletions bin/configs/csharp-generichost-net10-anyOf.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# for csharp generichost
generatorName: csharp
outputDir: samples/client/petstore/csharp/generichost/net10/AnyOf
inputSpec: modules/openapi-generator/src/test/resources/3_0/anyOf.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp
additionalProperties:
packageGuid: '{321C8C3F-0156-40C1-AE42-D59761FB9B6C}'
useCompareNetObjects: true
disallowAdditionalPropertiesIfNotPresent: false
nullableReferenceTypes: true
equatable: true
targetFramework: net10.0
modelPropertySorting: alphabetical
operationParameterSorting: alphabetical
14 changes: 14 additions & 0 deletions bin/configs/csharp-generichost-net10-anyOfNoCompare.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# for csharp generichost
generatorName: csharp
outputDir: samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare
inputSpec: modules/openapi-generator/src/test/resources/3_0/anyOf.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp
additionalProperties:
packageGuid: '{321C8C3F-0156-40C1-AE42-D59761FB9B6C}'
useCompareNetObjects: false
disallowAdditionalPropertiesIfNotPresent: false
nullableReferenceTypes: true
equatable: true
targetFramework: net10.0
modelPropertySorting: alphabetical
operationParameterSorting: alphabetical
17 changes: 17 additions & 0 deletions bin/configs/csharp-generichost-net10-formModels.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# for csharp generichost
generatorName: csharp
outputDir: samples/client/petstore/csharp/generichost/net10/FormModels
inputSpec: modules/openapi-generator/src/test/resources/3_0/csharp/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp
additionalProperties:
packageGuid: '{321C8C3F-0156-40C1-AE42-D59761FB9B6C}'
useCompareNetObjects: true
disallowAdditionalPropertiesIfNotPresent: false
nullableReferenceTypes: false
equatable: true
targetFramework: net10.0
skipFormModel: false
modelPropertySorting: alphabetical
operationParameterSorting: alphabetical
inlineSchemaOptions:
RESOLVE_INLINE_ENUMS: true
14 changes: 14 additions & 0 deletions bin/configs/csharp-generichost-net10-nrt-useSourceGeneration.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# for csharp generichost
generatorName: csharp
outputDir: samples/client/petstore/csharp/generichost/net10/SourceGeneration
inputSpec: modules/openapi-generator/src/test/resources/3_0/csharp/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp
additionalProperties:
packageGuid: '{321C8C3F-0156-40C1-AE42-D59761FB9B6C}'
useCompareNetObjects: true
disallowAdditionalPropertiesIfNotPresent: false
useSourceGeneration: true
equatable: true
targetFramework: net10.0
modelPropertySorting: alphabetical
operationParameterSorting: alphabetical
14 changes: 14 additions & 0 deletions bin/configs/csharp-generichost-net10-nrt.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# for csharp generichost
generatorName: csharp
outputDir: samples/client/petstore/csharp/generichost/net10/NullReferenceTypes
inputSpec: modules/openapi-generator/src/test/resources/3_0/csharp/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp
additionalProperties:
packageGuid: '{321C8C3F-0156-40C1-AE42-D59761FB9B6C}'
useCompareNetObjects: true
disallowAdditionalPropertiesIfNotPresent: false
nullableReferenceTypes: true
equatable: true
targetFramework: net10.0
modelPropertySorting: alphabetical
operationParameterSorting: alphabetical
14 changes: 14 additions & 0 deletions bin/configs/csharp-generichost-net10-oneOf.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# for csharp generichost
generatorName: csharp
outputDir: samples/client/petstore/csharp/generichost/net10/OneOf
inputSpec: modules/openapi-generator/src/test/resources/3_0/oneOf.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp
additionalProperties:
packageGuid: '{321C8C3F-0156-40C1-AE42-D59761FB9B6C}'
useCompareNetObjects: true
disallowAdditionalPropertiesIfNotPresent: false
nullableReferenceTypes: true
equatable: true
targetFramework: net10.0
modelPropertySorting: alphabetical
operationParameterSorting: alphabetical
11 changes: 11 additions & 0 deletions bin/configs/csharp-generichost-net10-useDateTimeForDate.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# for csharp generichost
generatorName: csharp
outputDir: samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate
inputSpec: modules/openapi-generator/src/test/resources/3_0/csharp/dates-api.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp
additionalProperties:
packageGuid: '{2E60EF87-DB0B-4D01-A36E-F5E90F7EC757}'
useDateTimeForDate: true
targetFramework: net10.0
modelPropertySorting: alphabetical
operationParameterSorting: alphabetical
14 changes: 14 additions & 0 deletions bin/configs/csharp-generichost-net10.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# for csharp generichost
generatorName: csharp
outputDir: samples/client/petstore/csharp/generichost/net10/Petstore
inputSpec: modules/openapi-generator/src/test/resources/3_0/csharp/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp
additionalProperties:
packageGuid: '{321C8C3F-0156-40C1-AE42-D59761FB9B6C}'
useCompareNetObjects: true
disallowAdditionalPropertiesIfNotPresent: false
nullableReferenceTypes: false
equatable: true
targetFramework: net10.0
modelPropertySorting: alphabetical
operationParameterSorting: alphabetical
14 changes: 14 additions & 0 deletions bin/configs/csharp-httpclient-net10-nonPublicApi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# for .net standard httpclient
generatorName: csharp
outputDir: samples/client/petstore/csharp/httpclient/net10/Petstore-nonPublicApi
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-addpet-only.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp
library: httpclient
additionalProperties:
packageGuid: '{321C8C3F-0156-40C1-AE42-D59761FB9B6C}'
useCompareNetObjects: true
disallowAdditionalPropertiesIfNotPresent: false
useOneOfDiscriminatorLookup: true
targetFramework: net10.0
equatable: true
nonPublicApi: true
13 changes: 13 additions & 0 deletions bin/configs/csharp-httpclient-net10.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# for .net standard httpclient
generatorName: csharp
outputDir: samples/client/petstore/csharp/httpclient/net10/Petstore
inputSpec: modules/openapi-generator/src/test/resources/3_0/csharp/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp
library: httpclient
additionalProperties:
packageGuid: '{321C8C3F-0156-40C1-AE42-D59761FB9B6C}'
useCompareNetObjects: true
disallowAdditionalPropertiesIfNotPresent: false
useOneOfDiscriminatorLookup: true
targetFramework: net10.0
equatable: true
15 changes: 15 additions & 0 deletions bin/configs/csharp-restsharp-net10.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# for .net standard
generatorName: csharp
library: restsharp
outputDir: samples/client/petstore/csharp/restsharp/net10/EnumMappings
inputSpec: modules/openapi-generator/src/test/resources/3_0/csharp/petstore-with-fake-endpoints-models-for-testing-with-http-signature-oneof-primitive-types.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp
additionalProperties:
packageGuid: '{321C8C3F-0156-40C1-AE42-D59761FB9B6C}'
useCompareNetObjects: true
disallowAdditionalPropertiesIfNotPresent: false
useOneOfDiscriminatorLookup: true
targetFramework: net10.0
equatable: true
enumNameMappings:
delivered: Shipped
9 changes: 9 additions & 0 deletions bin/configs/csharp-unityWebRequest-net10.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# for .net Unity
generatorName: csharp
outputDir: samples/client/petstore/csharp/unityWebRequest/net10/Petstore
inputSpec: modules/openapi-generator/src/test/resources/3_0/csharp/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp
library: unityWebRequest
additionalProperties:
targetFramework: net10.0
equatable: true
2 changes: 1 addition & 1 deletion docs/generators/csharp.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|packageVersion|C# package version.| |1.0.0|
|returnICollection|Return ICollection<T> instead of the concrete type.| |false|
|sourceFolder|source folder for generated code| |src|
|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>**net8.0**</dt><dd>.NET 8.0 (End of Support 10 November 2026)</dd><dt>**net9.0**</dt><dd>.NET 9.0 (End of Support 12 May 2026)</dd></dl>|net9.0|
|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>**net8.0**</dt><dd>.NET 8.0 (End of Support 10 November 2026)</dd><dt>**net9.0**</dt><dd>.NET 9.0 (End of Support 10 November 2026)</dd><dt>**net10.0**</dt><dd>.NET 10.0 (End of Support 14 November 2028)</dd></dl>|net10.0|
|useCollection|Deserialize array types to Collection&lt;T&gt; instead of List&lt;T&gt;.| |false|
|useDateTimeForDate|Use DateTime to model date properties even if DateOnly supported. (.net 6.0+ only)| |false|
|useDateTimeOffset|Use DateTimeOffset to model date-time properties| |false|
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen {
protected static final String NET_70_OR_LATER = "net70OrLater";
protected static final String NET_80_OR_LATER = "net80OrLater";
protected static final String NET_90_OR_LATER = "net90OrLater";
protected static final String NET_10_OR_LATER = "net10OrLater";

@SuppressWarnings("hiding")
private final Logger LOGGER = LoggerFactory.getLogger(CSharpClientCodegen.class);
Expand All @@ -90,7 +91,8 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen {
FrameworkStrategy.NETFRAMEWORK_4_7,
FrameworkStrategy.NETFRAMEWORK_4_8,
FrameworkStrategy.NET_8_0,
FrameworkStrategy.NET_9_0
FrameworkStrategy.NET_9_0,
FrameworkStrategy.NET_10
);
private static FrameworkStrategy latestFramework = frameworkStrategies.get(frameworkStrategies.size() - 1);
protected final Map<String, String> frameworks;
Expand Down Expand Up @@ -1448,8 +1450,11 @@ private static abstract class FrameworkStrategy {
};
static FrameworkStrategy NET_8_0 = new FrameworkStrategy("net8.0", ".NET 8.0 (End of Support 10 November 2026)", "net8.0", Boolean.FALSE) {
};
static FrameworkStrategy NET_9_0 = new FrameworkStrategy("net9.0", ".NET 9.0 (End of Support 12 May 2026)", "net9.0", Boolean.FALSE) {
static FrameworkStrategy NET_9_0 = new FrameworkStrategy("net9.0", ".NET 9.0 (End of Support 10 November 2026)", "net9.0", Boolean.FALSE) {
};
static FrameworkStrategy NET_10 = new FrameworkStrategy("net10.0", ".NET 10.0 (End of Support 14 November 2028)", "net10.0", Boolean.FALSE) {
};

protected String name;
protected String description;
protected String testTargetFramework;
Expand Down Expand Up @@ -1580,6 +1585,19 @@ protected void configureAdditionalPropertiesForFrameworks(final Map<String, Obje
properties.put(NET_70_OR_LATER, true);
properties.put(NET_80_OR_LATER, true);
properties.put(NET_90_OR_LATER, true);
} else if (strategies.stream().anyMatch(p -> "net10.0".equals(p.name))) {
properties.put(NET_STANDARD_14_OR_LATER, true);
properties.put(NET_STANDARD_15_OR_LATER, true);
properties.put(NET_STANDARD_16_OR_LATER, true);
properties.put(NET_STANDARD_20_OR_LATER, true);
properties.put(NET_STANDARD_21_OR_LATER, true);
properties.put(NET_47_OR_LATER, true);
properties.put(NET_48_OR_LATER, true);
properties.put(NET_60_OR_LATER, true);
properties.put(NET_70_OR_LATER, true);
properties.put(NET_80_OR_LATER, true);
properties.put(NET_90_OR_LATER, true);
properties.put(NET_10_OR_LATER, true);
} else {
throw new RuntimeException("Unhandled case");
}
Expand Down
Loading
Loading