Skip to content

Commit d9229c7

Browse files
fix(csharp): Fixed JsonConverter for discriminators only appearing on base classes (#19972)
* fix(csharp): Fixed JsonConverter for discriminators only appearing on base classes * chore: Updated .NET samples
1 parent 5702751 commit d9229c7

File tree

24 files changed

+6
-21
lines changed

24 files changed

+6
-21
lines changed

modules/openapi-generator/src/main/resources/aspnetcore/3.0/model.mustache

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ namespace {{modelPackage}}
3434
[DataContract]
3535
{{#discriminator}}
3636
{{#useNewtonsoft}}
37+
{{#mappedModels.size}}
3738
[JsonConverter(typeof(JsonSubtypes), "{{{discriminatorName}}}")]
39+
{{/mappedModels.size}}
3840
{{/useNewtonsoft}}
3941
{{#useSwashbuckle}}
4042
[SwaggerDiscriminator("{{{discriminatorName}}}")]

modules/openapi-generator/src/main/resources/csharp-functions/modelGeneric.mustache

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
/// </summary>
44
[DataContract(Name = "{{{name}}}")]
55
{{#discriminator}}
6+
{{#mappedModels.size}}
67
[JsonConverter(typeof(JsonSubtypes), "{{{discriminatorName}}}")]
8+
{{/mappedModels.size}}
79
{{#mappedModels}}
810
[JsonSubtypes.KnownSubType(typeof({{{modelName}}}), "{{^vendorExtensions.x-discriminator-value}}{{{mappingName}}}{{/vendorExtensions.x-discriminator-value}}{{#vendorExtensions.x-discriminator-value}}{{{.}}}{{/vendorExtensions.x-discriminator-value}}")]
911
{{/mappedModels}}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
[DataContract(Name = "{{{name}}}")]
1111
{{^useUnityWebRequest}}
1212
{{#discriminator}}
13+
{{#mappedModels.size}}
1314
[JsonConverter(typeof(JsonSubtypes), "{{{discriminatorName}}}")]
15+
{{/mappedModels.size}}
1416
{{#mappedModels}}
1517
[JsonSubtypes.KnownSubType(typeof({{{modelName}}}), "{{^vendorExtensions.x-discriminator-value}}{{{mappingName}}}{{/vendorExtensions.x-discriminator-value}}{{#vendorExtensions.x-discriminator-value}}{{{.}}}{{/vendorExtensions.x-discriminator-value}}")]
1618
{{/mappedModels}}

samples/client/petstore/csharp/httpclient/standard2.0/Petstore/src/Org.OpenAPITools/Model/Cat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ namespace Org.OpenAPITools.Model
3232
/// Cat
3333
/// </summary>
3434
[DataContract(Name = "Cat")]
35-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3635
public partial class Cat : Animal, IEquatable<Cat>, IValidatableObject
3736
{
3837
/// <summary>

samples/client/petstore/csharp/httpclient/standard2.0/Petstore/src/Org.OpenAPITools/Model/ChildCat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ namespace Org.OpenAPITools.Model
3232
/// ChildCat
3333
/// </summary>
3434
[DataContract(Name = "ChildCat")]
35-
[JsonConverter(typeof(JsonSubtypes), "PetType")]
3635
public partial class ChildCat : ParentPet, IEquatable<ChildCat>, IValidatableObject
3736
{
3837
/// <summary>

samples/client/petstore/csharp/httpclient/standard2.0/Petstore/src/Org.OpenAPITools/Model/Dog.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ namespace Org.OpenAPITools.Model
3232
/// Dog
3333
/// </summary>
3434
[DataContract(Name = "Dog")]
35-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3635
public partial class Dog : Animal, IEquatable<Dog>, IValidatableObject
3736
{
3837
/// <summary>

samples/client/petstore/csharp/restsharp/net4.7/Petstore/src/Org.OpenAPITools/Model/Cat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// Cat
3232
/// </summary>
3333
[DataContract(Name = "Cat")]
34-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3534
public partial class Cat : Animal, IEquatable<Cat>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/net4.7/Petstore/src/Org.OpenAPITools/Model/ChildCat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// ChildCat
3232
/// </summary>
3333
[DataContract(Name = "ChildCat")]
34-
[JsonConverter(typeof(JsonSubtypes), "PetType")]
3534
public partial class ChildCat : ParentPet, IEquatable<ChildCat>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/net4.7/Petstore/src/Org.OpenAPITools/Model/Dog.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// Dog
3232
/// </summary>
3333
[DataContract(Name = "Dog")]
34-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3534
public partial class Dog : Animal, IEquatable<Dog>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/net4.8/Petstore/src/Org.OpenAPITools/Model/Cat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// Cat
3232
/// </summary>
3333
[DataContract(Name = "Cat")]
34-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3534
public partial class Cat : Animal, IEquatable<Cat>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/net4.8/Petstore/src/Org.OpenAPITools/Model/ChildCat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// ChildCat
3232
/// </summary>
3333
[DataContract(Name = "ChildCat")]
34-
[JsonConverter(typeof(JsonSubtypes), "PetType")]
3534
public partial class ChildCat : ParentPet, IEquatable<ChildCat>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/net4.8/Petstore/src/Org.OpenAPITools/Model/Dog.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// Dog
3232
/// </summary>
3333
[DataContract(Name = "Dog")]
34-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3534
public partial class Dog : Animal, IEquatable<Dog>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/Cat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// Cat
3232
/// </summary>
3333
[DataContract(Name = "Cat")]
34-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3534
public partial class Cat : Animal, IEquatable<Cat>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/ChildCat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// ChildCat
3232
/// </summary>
3333
[DataContract(Name = "ChildCat")]
34-
[JsonConverter(typeof(JsonSubtypes), "PetType")]
3534
public partial class ChildCat : ParentPet, IEquatable<ChildCat>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/Dog.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// Dog
3232
/// </summary>
3333
[DataContract(Name = "Dog")]
34-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3534
public partial class Dog : Animal, IEquatable<Dog>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/Cat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// Cat
3232
/// </summary>
3333
[DataContract(Name = "Cat")]
34-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3534
public partial class Cat : Animal, IEquatable<Cat>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/ChildCat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// ChildCat
3232
/// </summary>
3333
[DataContract(Name = "ChildCat")]
34-
[JsonConverter(typeof(JsonSubtypes), "PetType")]
3534
public partial class ChildCat : ParentPet, IEquatable<ChildCat>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/Dog.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// Dog
3232
/// </summary>
3333
[DataContract(Name = "Dog")]
34-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3534
public partial class Dog : Animal, IEquatable<Dog>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/standard2.0/ConditionalSerialization/src/Org.OpenAPITools/Model/Cat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// Cat
3232
/// </summary>
3333
[DataContract(Name = "Cat")]
34-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3534
public partial class Cat : Animal, IEquatable<Cat>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/standard2.0/ConditionalSerialization/src/Org.OpenAPITools/Model/ChildCat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// ChildCat
3232
/// </summary>
3333
[DataContract(Name = "ChildCat")]
34-
[JsonConverter(typeof(JsonSubtypes), "PetType")]
3534
public partial class ChildCat : ParentPet, IEquatable<ChildCat>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/standard2.0/ConditionalSerialization/src/Org.OpenAPITools/Model/Dog.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// Dog
3232
/// </summary>
3333
[DataContract(Name = "Dog")]
34-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3534
public partial class Dog : Animal, IEquatable<Dog>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/standard2.0/Petstore/src/Org.OpenAPITools/Model/Cat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// Cat
3232
/// </summary>
3333
[DataContract(Name = "Cat")]
34-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3534
public partial class Cat : Animal, IEquatable<Cat>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/standard2.0/Petstore/src/Org.OpenAPITools/Model/ChildCat.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// ChildCat
3232
/// </summary>
3333
[DataContract(Name = "ChildCat")]
34-
[JsonConverter(typeof(JsonSubtypes), "PetType")]
3534
public partial class ChildCat : ParentPet, IEquatable<ChildCat>, IValidatableObject
3635
{
3736
/// <summary>

samples/client/petstore/csharp/restsharp/standard2.0/Petstore/src/Org.OpenAPITools/Model/Dog.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace Org.OpenAPITools.Model
3131
/// Dog
3232
/// </summary>
3333
[DataContract(Name = "Dog")]
34-
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
3534
public partial class Dog : Animal, IEquatable<Dog>, IValidatableObject
3635
{
3736
/// <summary>

0 commit comments

Comments
 (0)