openapi-generator/docs/generators/csharp-refactor.md
Jim Schubert f39e200e5d C# refactor improvements: .NET Standard and .NET Core (#2187)
* [csharp-refactor] limit available target framework

This removes .NET 3.x, .NET 4.0, UWP, and the "5.0" option (which
referred to PCL 5.0). This gives us a smaller footprint for maintenance,
and doesn't necessarily block consumers from creating custom templates
to support those target frameworks. A workaround for users wanting these
options is to build against openapi-generator 3.3.4.

This moves logic for applying additional properties to strategies per
target framework, as a means to reduce maintenance overhead at the cost
of maybe a little redundancy between strategies.

* [csharp-refactor] Fixing .netstandard support

* [csharp-refactor] Fixing netcoreapp2.0 support

* [csharp-refactor] Regenerate samples

* Fix toLowerCase missing Local.ROOT

* [csharp-refactor] Remove unnecessary bash/batch scripts, update appveyor.

* Update appveyor.yml to test for dotnet/xunit

* Update appveyor.yml

Wrap xunit console environment variables in quotes, to prevent yaml syntax error.

* Update appveyor.yml

Try to use dos-style switches, attempting to remove yaml parse error in appveyor. Previous command matched appveyor docs, but resulted in the parser error.

* Update appveyor.yml

Wrap full commands for netstandard tests in quotes

* Fix linux style slashes in dotnet build, use dotnet test over appveyor xunit

* [csharp-refactor] Update generator docs
2019-03-10 12:33:49 +08:00

2.3 KiB


id: generator-opts-client-csharp-refactor title: Config Options for csharp-refactor sidebar_label: csharp-refactor

Option Description Values Default
packageName C# package name (convention: Title.Case). Org.OpenAPITools
packageVersion C# package version. 1.0.0
sourceFolder source folder for generated code src
packageGuid The GUID that will be associated with the C# project null
interfacePrefix Prefix interfaces with a community standard or widely accepted prefix. I
targetFramework The target .NET framework version.
netstandard1.3
.NET Standard 1.3 compatible
netstandard1.4
.NET Standard 1.4 compatible
netstandard1.5
.NET Standard 1.5 compatible
netstandard1.6
.NET Standard 1.6 compatible
netstandard2.0
.NET Standard 2.0 compatible
netcoreapp2.0
.NET Core 2.0 compatible
v4.6.1
modelPropertyNaming Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name PascalCase
hideGenerationTimestamp Hides the generation timestamp when files are generated. true
sortParamsByRequiredFlag Sort method arguments to place required parameters before optional parameters. true
useDateTimeOffset Use DateTimeOffset to model date-time properties false
useCollection Deserialize array types to Collection<T> instead of List<T>. false
returnICollection Return ICollection<T> instead of the concrete type. false
optionalMethodArgument C# Optional method argument, e.g. void square(int x=10) (.net 4.0+ only). true
optionalAssemblyInfo Generate AssemblyInfo.cs. true
optionalProjectFile Generate {PackageName}.csproj. true
optionalEmitDefaultValues Set DataMember's EmitDefaultValue. false
nonPublicApi Generates code with reduced access modifiers; allows embedding elsewhere without exposing non-public API calls to consumers. false
allowUnicodeIdentifiers boolean, toggles whether unicode identifiers are allowed in names or not, default is false false
netCoreProjectFile Use the new format (.NET Core) for .NET project files (.csproj). false
validatable Generates self-validatable models. true