Documentation for the csharp Generator
METADATA
| Property | Value | Notes |
|---|---|---|
| generator name | csharp | pass this to the generate command after -g |
| generator stability | STABLE | |
| generator type | CLIENT | |
| generator language | C# | |
| generator default templating engine | mustache | |
| helpTxt | Generates a CSharp client library. |
CONFIG OPTIONS
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to configuration docs for more details.
| Option | Description | Values | Default |
|---|---|---|---|
| allowUnicodeIdentifiers | boolean, toggles whether unicode identifiers are allowed in names or not, default is false | false | |
| caseInsensitiveResponseHeaders | Make API response's headers case-insensitive | false | |
| generatePropertyChanged | Specifies a AssemblyDescription for the .NET Framework global assembly attributes stored in the AssemblyInfo file. | false | |
| hideGenerationTimestamp | Hides the generation timestamp when files are generated. | true | |
| interfacePrefix | Prefix interfaces with a community standard or widely accepted prefix. | I | |
| modelPropertyNaming | Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name | PascalCase | |
| netCoreProjectFile | Use the new format (.NET Core) for .NET project files (.csproj). | false | |
| nonPublicApi | Generates code with reduced access modifiers; allows embedding elsewhere without exposing non-public API calls to consumers. | false | |
| optionalAssemblyInfo | Generate AssemblyInfo.cs. | true | |
| optionalEmitDefaultValues | Set DataMember's EmitDefaultValue. | false | |
| optionalMethodArgument | C# Optional method argument, e.g. void square(int x=10) (.net 4.0+ only). | true | |
| optionalProjectFile | Generate {PackageName}.csproj. | true | |
| packageGuid | The GUID that will be associated with the C# project | null | |
| packageName | C# package name (convention: Title.Case). | Org.OpenAPITools | |
| packageVersion | C# package version. | 1.0.0 | |
| returnICollection | Return ICollection<T> instead of the concrete type. | false | |
| sortParamsByRequiredFlag | Sort method arguments to place required parameters before optional parameters. | true | |
| 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 |
| v4.5 |
| useCollection | Deserialize array types to Collection<T> instead of List<T>. | false | |
| useCompareNetObjects | Use KellermanSoftware.CompareNetObjects for deep recursive object comparison. WARNING: this option incurs potential performance impact. | false | |
| useDateTimeOffset | Use DateTimeOffset to model date-time properties | false | |
| validatable | Generates self-validatable models. | true |
IMPORT MAPPING
| Type/Alias | Imports |
|---|
INSTANTIATION TYPES
| Type/Alias | Instantiated By |
|---|---|
| array | List |
| list | List |
| map | Dictionary |
LANGUAGE PRIMITIVES
- Boolean
- Collection
- DateTime
- DateTime?
- DateTimeOffset
- DateTimeOffset?
- Decimal
- Dictionary
- Double
- Float
- Guid
- Guid?
- ICollection
- Int32
- Int64
- List
- Object
- String
- System.IO.Stream
- bool
- bool?
- byte[]
- decimal
- decimal?
- double
- double?
- float
- float?
- int
- int?
- long
- long?
- string
RESERVED WORDS
- Client
- Configuration
- Version
- abstract
- as
- base
- bool
- break
- byte
- case
- catch
- char
- checked
- class
- client
- const
- continue
- decimal
- default
- delegate
- do
- double
- else
- enum
- event
- explicit
- extern
- false
- finally
- fixed
- float
- for
- foreach
- goto
- if
- implicit
- in
- int
- interface
- internal
- is
- localVarFileParams
- localVarFormParams
- localVarHeaderParams
- localVarHttpContentType
- localVarHttpContentTypes
- localVarHttpHeaderAccept
- localVarHttpHeaderAccepts
- localVarPath
- localVarPathParams
- localVarPostBody
- localVarQueryParams
- localVarResponse
- localVarStatusCode
- lock
- long
- namespace
- new
- null
- object
- operator
- out
- override
- parameter
- params
- private
- protected
- public
- readonly
- ref
- return
- sbyte
- sealed
- short
- sizeof
- stackalloc
- static
- string
- struct
- switch
- this
- throw
- true
- try
- typeof
- uint
- ulong
- unchecked
- unsafe
- ushort
- using
- virtual
- void
- volatile
- while
FEATURE SET
Client Modification Feature
| Name | Supported | Defined By |
|---|---|---|
| BasePath | ✓ | ToolingExtension |
| Authorizations | ✗ | ToolingExtension |
| UserAgent | ✓ | ToolingExtension |
| MockServer | ✗ | ToolingExtension |
Data Type Feature
| Name | Supported | Defined By |
|---|---|---|
| Custom | ✗ | OAS2,OAS3 |
| Int32 | ✓ | OAS2,OAS3 |
| Int64 | ✓ | OAS2,OAS3 |
| Float | ✓ | OAS2,OAS3 |
| Double | ✓ | OAS2,OAS3 |
| Decimal | ✓ | ToolingExtension |
| String | ✓ | OAS2,OAS3 |
| Byte | ✓ | OAS2,OAS3 |
| Binary | ✓ | OAS2,OAS3 |
| Boolean | ✓ | OAS2,OAS3 |
| Date | ✓ | OAS2,OAS3 |
| DateTime | ✓ | OAS2,OAS3 |
| Password | ✓ | OAS2,OAS3 |
| File | ✓ | OAS2 |
| Uuid | ✗ | |
| Array | ✓ | OAS2,OAS3 |
| Null | ✗ | OAS3 |
| AnyType | ✗ | OAS2,OAS3 |
| Object | ✓ | OAS2,OAS3 |
| Maps | ✓ | ToolingExtension |
| CollectionFormat | ✓ | OAS2 |
| CollectionFormatMulti | ✓ | OAS2 |
| Enum | ✓ | OAS2,OAS3 |
| ArrayOfEnum | ✓ | ToolingExtension |
| ArrayOfModel | ✓ | ToolingExtension |
| ArrayOfCollectionOfPrimitives | ✓ | ToolingExtension |
| ArrayOfCollectionOfModel | ✓ | ToolingExtension |
| ArrayOfCollectionOfEnum | ✓ | ToolingExtension |
| MapOfEnum | ✓ | ToolingExtension |
| MapOfModel | ✓ | ToolingExtension |
| MapOfCollectionOfPrimitives | ✓ | ToolingExtension |
| MapOfCollectionOfModel | ✓ | ToolingExtension |
| MapOfCollectionOfEnum | ✓ | ToolingExtension |
Documentation Feature
| Name | Supported | Defined By |
|---|---|---|
| Readme | ✓ | ToolingExtension |
| Model | ✓ | ToolingExtension |
| Api | ✓ | ToolingExtension |
Global Feature
| Name | Supported | Defined By |
|---|---|---|
| Host | ✓ | OAS2,OAS3 |
| BasePath | ✓ | OAS2,OAS3 |
| Info | ✓ | OAS2,OAS3 |
| Schemes | ✗ | OAS2,OAS3 |
| PartialSchemes | ✓ | OAS2,OAS3 |
| Consumes | ✓ | OAS2 |
| Produces | ✓ | OAS2 |
| ExternalDocumentation | ✓ | OAS2,OAS3 |
| Examples | ✓ | OAS2,OAS3 |
| XMLStructureDefinitions | ✗ | OAS2,OAS3 |
| MultiServer | ✗ | OAS3 |
| ParameterizedServer | ✗ | OAS3 |
| ParameterStyling | ✗ | OAS3 |
| Callbacks | ✗ | OAS3 |
| LinkObjects | ✗ | OAS3 |
Parameter Feature
| Name | Supported | Defined By |
|---|---|---|
| Path | ✓ | OAS2,OAS3 |
| Query | ✓ | OAS2,OAS3 |
| Header | ✓ | OAS2,OAS3 |
| Body | ✓ | OAS2 |
| FormUnencoded | ✓ | OAS2 |
| FormMultipart | ✓ | OAS2 |
| Cookie | ✗ | OAS3 |
Schema Support Feature
| Name | Supported | Defined By |
|---|---|---|
| Simple | ✓ | OAS2,OAS3 |
| Composite | ✓ | OAS2,OAS3 |
| Polymorphism | ✓ | OAS2,OAS3 |
| Union | ✗ | OAS3 |
| allOf | ✗ | OAS2,OAS3 |
| anyOf | ✗ | OAS3 |
| oneOf | ✗ | OAS3 |
| not | ✗ | OAS3 |
Security Feature
| Name | Supported | Defined By |
|---|---|---|
| BasicAuth | ✓ | OAS2,OAS3 |
| ApiKey | ✓ | OAS2,OAS3 |
| OpenIDConnect | ✗ | OAS3 |
| BearerToken | ✗ | OAS3 |
| OAuth2_Implicit | ✓ | OAS2,OAS3 |
| OAuth2_Password | ✗ | OAS2,OAS3 |
| OAuth2_ClientCredentials | ✗ | OAS2,OAS3 |
| OAuth2_AuthorizationCode | ✗ | OAS2,OAS3 |
Wire Format Feature
| Name | Supported | Defined By |
|---|---|---|
| JSON | ✓ | OAS2,OAS3 |
| XML | ✓ | OAS2,OAS3 |
| PROTOBUF | ✗ | ToolingExtension |
| Custom | ✗ | OAS2,OAS3 |