diff --git a/modules/openapi-generator/src/main/resources/csharp-netcore/AbstractOpenAPISchema.mustache b/modules/openapi-generator/src/main/resources/csharp-netcore/AbstractOpenAPISchema.mustache
index a59359813d2..05e78204959 100644
--- a/modules/openapi-generator/src/main/resources/csharp-netcore/AbstractOpenAPISchema.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp-netcore/AbstractOpenAPISchema.mustache
@@ -28,6 +28,23 @@ namespace {{packageName}}.{{modelPackage}}
}
};
+ ///
+ /// Custom JSON serializer for objects with additional properties
+ ///
+ static public readonly JsonSerializerSettings AdditionalPropertiesSerializerSettings = new JsonSerializerSettings
+ {
+ // OpenAPI generated types generally hide default constructors.
+ ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor,
+ MissingMemberHandling = MissingMemberHandling.Ignore,
+ ContractResolver = new DefaultContractResolver
+ {
+ NamingStrategy = new CamelCaseNamingStrategy
+ {
+ OverrideSpecifiedNames = false
+ }
+ }
+ };
+
///
/// Gets or Sets the actual instance
///
diff --git a/modules/openapi-generator/src/main/resources/csharp-netcore/modelOneOf.mustache b/modules/openapi-generator/src/main/resources/csharp-netcore/modelOneOf.mustache
index 914e832248a..4480e31de24 100644
--- a/modules/openapi-generator/src/main/resources/csharp-netcore/modelOneOf.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp-netcore/modelOneOf.mustache
@@ -112,7 +112,12 @@
{
{{#mappedModels}}
case "{{{mappingName}}}":
- new{{classname}} = new {{classname}}(JsonConvert.DeserializeObject<{{{modelName}}}>(jsonString, {{classname}}.SerializerSettings));
+ new{{classname}} = new {{classname}}(JsonConvert.DeserializeObject<{{{modelName}}}>(jsonString, {{classname}}.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (new{{{classname}}}.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ new{{classname}} = new {{classname}}(JsonConvert.DeserializeObject<{{{modelName}}}>(jsonString, {{classname}}.SerializerSettings));
+ }
return new{{classname}};
{{/mappedModels}}
default:
@@ -128,7 +133,12 @@
try
{
- new{{classname}} = new {{classname}}(JsonConvert.DeserializeObject<{{{.}}}>(jsonString, {{classname}}.SerializerSettings));
+ new{{classname}} = new {{classname}}(JsonConvert.DeserializeObject<{{{.}}}>(jsonString, {{classname}}.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (new{{{classname}}}.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ new{{classname}} = new {{classname}}(JsonConvert.DeserializeObject<{{{.}}}>(jsonString, {{classname}}.SerializerSettings));
+ }
matchedTypes.Add("{{{.}}}");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/AbstractOpenAPISchema.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/AbstractOpenAPISchema.cs
index b37dea7796d..b3fc4c3c7a3 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/AbstractOpenAPISchema.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/AbstractOpenAPISchema.cs
@@ -36,6 +36,23 @@ namespace Org.OpenAPITools.Model
}
};
+ ///
+ /// Custom JSON serializer for objects with additional properties
+ ///
+ static public readonly JsonSerializerSettings AdditionalPropertiesSerializerSettings = new JsonSerializerSettings
+ {
+ // OpenAPI generated types generally hide default constructors.
+ ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor,
+ MissingMemberHandling = MissingMemberHandling.Ignore,
+ ContractResolver = new DefaultContractResolver
+ {
+ NamingStrategy = new CamelCaseNamingStrategy
+ {
+ OverrideSpecifiedNames = false
+ }
+ }
+ };
+
///
/// Gets or Sets the actual instance
///
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Fruit.cs
index a7f438115d2..8226bbd0a2f 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Fruit.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Fruit.cs
@@ -147,7 +147,12 @@ namespace Org.OpenAPITools.Model
try
{
- newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.SerializerSettings));
+ newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newFruit.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.SerializerSettings));
+ }
matchedTypes.Add("Apple");
match++;
}
@@ -159,7 +164,12 @@ namespace Org.OpenAPITools.Model
try
{
- newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.SerializerSettings));
+ newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newFruit.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.SerializerSettings));
+ }
matchedTypes.Add("Banana");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/FruitReq.cs
index 09cde406cb8..57d5d8d271b 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/FruitReq.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/FruitReq.cs
@@ -156,7 +156,12 @@ namespace Org.OpenAPITools.Model
try
{
- newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.SerializerSettings));
+ newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newFruitReq.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.SerializerSettings));
+ }
matchedTypes.Add("AppleReq");
match++;
}
@@ -168,7 +173,12 @@ namespace Org.OpenAPITools.Model
try
{
- newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.SerializerSettings));
+ newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newFruitReq.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.SerializerSettings));
+ }
matchedTypes.Add("BananaReq");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Mammal.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Mammal.cs
index bbd1ee68025..c8e3229ed3b 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Mammal.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Mammal.cs
@@ -174,13 +174,28 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "Pig":
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
return newMammal;
case "whale":
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
return newMammal;
case "zebra":
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
return newMammal;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for Mammal. Possible values: Pig whale zebra", discriminatorValue));
@@ -192,7 +207,12 @@ namespace Org.OpenAPITools.Model
try
{
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
matchedTypes.Add("Pig");
match++;
}
@@ -204,7 +224,12 @@ namespace Org.OpenAPITools.Model
try
{
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
matchedTypes.Add("Whale");
match++;
}
@@ -216,7 +241,12 @@ namespace Org.OpenAPITools.Model
try
{
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
matchedTypes.Add("Zebra");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/NullableShape.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/NullableShape.cs
index 40e45e6c5c1..ae8ae903e98 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/NullableShape.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/NullableShape.cs
@@ -157,10 +157,20 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "Quadrilateral":
- newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newNullableShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ }
return newNullableShape;
case "Triangle":
- newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newNullableShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ }
return newNullableShape;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for NullableShape. Possible values: Quadrilateral Triangle", discriminatorValue));
@@ -172,7 +182,12 @@ namespace Org.OpenAPITools.Model
try
{
- newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newNullableShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ }
matchedTypes.Add("Quadrilateral");
match++;
}
@@ -184,7 +199,12 @@ namespace Org.OpenAPITools.Model
try
{
- newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newNullableShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ }
matchedTypes.Add("Triangle");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Pig.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Pig.cs
index 9fe315d7e46..ffdc73846d6 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Pig.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Pig.cs
@@ -148,10 +148,20 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "BasquePig":
- newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newPig.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ }
return newPig;
case "DanishPig":
- newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newPig.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ }
return newPig;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for Pig. Possible values: BasquePig DanishPig", discriminatorValue));
@@ -163,7 +173,12 @@ namespace Org.OpenAPITools.Model
try
{
- newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newPig.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ }
matchedTypes.Add("BasquePig");
match++;
}
@@ -175,7 +190,12 @@ namespace Org.OpenAPITools.Model
try
{
- newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newPig.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ }
matchedTypes.Add("DanishPig");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Quadrilateral.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Quadrilateral.cs
index 1c02cdbd5f2..0a5cffe71db 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Quadrilateral.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Quadrilateral.cs
@@ -148,10 +148,20 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "ComplexQuadrilateral":
- newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newQuadrilateral.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ }
return newQuadrilateral;
case "SimpleQuadrilateral":
- newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newQuadrilateral.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ }
return newQuadrilateral;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for Quadrilateral. Possible values: ComplexQuadrilateral SimpleQuadrilateral", discriminatorValue));
@@ -163,7 +173,12 @@ namespace Org.OpenAPITools.Model
try
{
- newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newQuadrilateral.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ }
matchedTypes.Add("ComplexQuadrilateral");
match++;
}
@@ -175,7 +190,12 @@ namespace Org.OpenAPITools.Model
try
{
- newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newQuadrilateral.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ }
matchedTypes.Add("SimpleQuadrilateral");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Shape.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Shape.cs
index 055584e7c90..7db4ac39060 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Shape.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Shape.cs
@@ -148,10 +148,20 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "Quadrilateral":
- newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ }
return newShape;
case "Triangle":
- newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ }
return newShape;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for Shape. Possible values: Quadrilateral Triangle", discriminatorValue));
@@ -163,7 +173,12 @@ namespace Org.OpenAPITools.Model
try
{
- newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ }
matchedTypes.Add("Quadrilateral");
match++;
}
@@ -175,7 +190,12 @@ namespace Org.OpenAPITools.Model
try
{
- newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ }
matchedTypes.Add("Triangle");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ShapeOrNull.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ShapeOrNull.cs
index 7ad0f257bf6..11456f9c653 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ShapeOrNull.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ShapeOrNull.cs
@@ -157,10 +157,20 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "Quadrilateral":
- newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShapeOrNull.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ }
return newShapeOrNull;
case "Triangle":
- newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShapeOrNull.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ }
return newShapeOrNull;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for ShapeOrNull. Possible values: Quadrilateral Triangle", discriminatorValue));
@@ -172,7 +182,12 @@ namespace Org.OpenAPITools.Model
try
{
- newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShapeOrNull.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ }
matchedTypes.Add("Quadrilateral");
match++;
}
@@ -184,7 +199,12 @@ namespace Org.OpenAPITools.Model
try
{
- newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShapeOrNull.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ }
matchedTypes.Add("Triangle");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Triangle.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Triangle.cs
index 04211f42ad3..efe1b348399 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Triangle.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Triangle.cs
@@ -174,13 +174,28 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "EquilateralTriangle":
- newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newTriangle.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ }
return newTriangle;
case "IsoscelesTriangle":
- newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newTriangle.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ }
return newTriangle;
case "ScaleneTriangle":
- newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newTriangle.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ }
return newTriangle;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for Triangle. Possible values: EquilateralTriangle IsoscelesTriangle ScaleneTriangle", discriminatorValue));
@@ -192,7 +207,12 @@ namespace Org.OpenAPITools.Model
try
{
- newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newTriangle.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ }
matchedTypes.Add("EquilateralTriangle");
match++;
}
@@ -204,7 +224,12 @@ namespace Org.OpenAPITools.Model
try
{
- newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newTriangle.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ }
matchedTypes.Add("IsoscelesTriangle");
match++;
}
@@ -216,7 +241,12 @@ namespace Org.OpenAPITools.Model
try
{
- newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newTriangle.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ }
matchedTypes.Add("ScaleneTriangle");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools.Test/JSONComposedSchemaTests.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools.Test/JSONComposedSchemaTests.cs
index 586d8a57232..58b2cc4021c 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools.Test/JSONComposedSchemaTests.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools.Test/JSONComposedSchemaTests.cs
@@ -86,7 +86,8 @@ namespace Org.OpenAPITools.Test
Assert.IsType(f3.ActualInstance);
Fruit f4 = Fruit.FromJson("{\"origin\":\"Japan\"}");
- Assert.IsType(f4.ActualInstance);
+ // since banana allows additional properties, it will apple's JSON payload as well
+ Assert.IsType(f4.ActualInstance);
// test custom deserializer
Fruit f5 = JsonConvert.DeserializeObject("{\"lengthCm\":98}");
@@ -117,5 +118,18 @@ namespace Org.OpenAPITools.Test
Cat c = JsonConvert.DeserializeObject("{\"className\":\"cat\",\"bar\":\"from json bar\"}");
Assert.Equal("from json bar", c.AdditionalProperties["bar"]);
}
+
+ ///
+ /// Test additonal properties
+ ///
+ [Fact]
+ public void TestAdditionalProperties()
+ {
+ Foo f = new Foo();
+
+ Assert.NotNull(f.GetType().GetProperty("AdditionalProperties"));
+ Assert.Null(f.GetType().GetProperty("unknown_property"));
+
+ }
}
}
\ No newline at end of file
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/AbstractOpenAPISchema.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/AbstractOpenAPISchema.cs
index b37dea7796d..b3fc4c3c7a3 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/AbstractOpenAPISchema.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/AbstractOpenAPISchema.cs
@@ -36,6 +36,23 @@ namespace Org.OpenAPITools.Model
}
};
+ ///
+ /// Custom JSON serializer for objects with additional properties
+ ///
+ static public readonly JsonSerializerSettings AdditionalPropertiesSerializerSettings = new JsonSerializerSettings
+ {
+ // OpenAPI generated types generally hide default constructors.
+ ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor,
+ MissingMemberHandling = MissingMemberHandling.Ignore,
+ ContractResolver = new DefaultContractResolver
+ {
+ NamingStrategy = new CamelCaseNamingStrategy
+ {
+ OverrideSpecifiedNames = false
+ }
+ }
+ };
+
///
/// Gets or Sets the actual instance
///
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Fruit.cs
index a7f438115d2..8226bbd0a2f 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Fruit.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Fruit.cs
@@ -147,7 +147,12 @@ namespace Org.OpenAPITools.Model
try
{
- newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.SerializerSettings));
+ newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newFruit.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.SerializerSettings));
+ }
matchedTypes.Add("Apple");
match++;
}
@@ -159,7 +164,12 @@ namespace Org.OpenAPITools.Model
try
{
- newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.SerializerSettings));
+ newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newFruit.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.SerializerSettings));
+ }
matchedTypes.Add("Banana");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/FruitReq.cs
index 09cde406cb8..57d5d8d271b 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/FruitReq.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/FruitReq.cs
@@ -156,7 +156,12 @@ namespace Org.OpenAPITools.Model
try
{
- newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.SerializerSettings));
+ newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newFruitReq.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.SerializerSettings));
+ }
matchedTypes.Add("AppleReq");
match++;
}
@@ -168,7 +173,12 @@ namespace Org.OpenAPITools.Model
try
{
- newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.SerializerSettings));
+ newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newFruitReq.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.SerializerSettings));
+ }
matchedTypes.Add("BananaReq");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Mammal.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Mammal.cs
index bbd1ee68025..c8e3229ed3b 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Mammal.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Mammal.cs
@@ -174,13 +174,28 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "Pig":
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
return newMammal;
case "whale":
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
return newMammal;
case "zebra":
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
return newMammal;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for Mammal. Possible values: Pig whale zebra", discriminatorValue));
@@ -192,7 +207,12 @@ namespace Org.OpenAPITools.Model
try
{
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
matchedTypes.Add("Pig");
match++;
}
@@ -204,7 +224,12 @@ namespace Org.OpenAPITools.Model
try
{
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
matchedTypes.Add("Whale");
match++;
}
@@ -216,7 +241,12 @@ namespace Org.OpenAPITools.Model
try
{
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
matchedTypes.Add("Zebra");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/NullableShape.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/NullableShape.cs
index 40e45e6c5c1..ae8ae903e98 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/NullableShape.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/NullableShape.cs
@@ -157,10 +157,20 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "Quadrilateral":
- newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newNullableShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ }
return newNullableShape;
case "Triangle":
- newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newNullableShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ }
return newNullableShape;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for NullableShape. Possible values: Quadrilateral Triangle", discriminatorValue));
@@ -172,7 +182,12 @@ namespace Org.OpenAPITools.Model
try
{
- newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newNullableShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ }
matchedTypes.Add("Quadrilateral");
match++;
}
@@ -184,7 +199,12 @@ namespace Org.OpenAPITools.Model
try
{
- newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newNullableShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ }
matchedTypes.Add("Triangle");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Pig.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Pig.cs
index 9fe315d7e46..ffdc73846d6 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Pig.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Pig.cs
@@ -148,10 +148,20 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "BasquePig":
- newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newPig.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ }
return newPig;
case "DanishPig":
- newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newPig.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ }
return newPig;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for Pig. Possible values: BasquePig DanishPig", discriminatorValue));
@@ -163,7 +173,12 @@ namespace Org.OpenAPITools.Model
try
{
- newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newPig.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ }
matchedTypes.Add("BasquePig");
match++;
}
@@ -175,7 +190,12 @@ namespace Org.OpenAPITools.Model
try
{
- newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newPig.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ }
matchedTypes.Add("DanishPig");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Quadrilateral.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Quadrilateral.cs
index 1c02cdbd5f2..0a5cffe71db 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Quadrilateral.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Quadrilateral.cs
@@ -148,10 +148,20 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "ComplexQuadrilateral":
- newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newQuadrilateral.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ }
return newQuadrilateral;
case "SimpleQuadrilateral":
- newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newQuadrilateral.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ }
return newQuadrilateral;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for Quadrilateral. Possible values: ComplexQuadrilateral SimpleQuadrilateral", discriminatorValue));
@@ -163,7 +173,12 @@ namespace Org.OpenAPITools.Model
try
{
- newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newQuadrilateral.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ }
matchedTypes.Add("ComplexQuadrilateral");
match++;
}
@@ -175,7 +190,12 @@ namespace Org.OpenAPITools.Model
try
{
- newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newQuadrilateral.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject(jsonString, Quadrilateral.SerializerSettings));
+ }
matchedTypes.Add("SimpleQuadrilateral");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Shape.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Shape.cs
index 055584e7c90..7db4ac39060 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Shape.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Shape.cs
@@ -148,10 +148,20 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "Quadrilateral":
- newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ }
return newShape;
case "Triangle":
- newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ }
return newShape;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for Shape. Possible values: Quadrilateral Triangle", discriminatorValue));
@@ -163,7 +173,12 @@ namespace Org.OpenAPITools.Model
try
{
- newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ }
matchedTypes.Add("Quadrilateral");
match++;
}
@@ -175,7 +190,12 @@ namespace Org.OpenAPITools.Model
try
{
- newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShape = new Shape(JsonConvert.DeserializeObject(jsonString, Shape.SerializerSettings));
+ }
matchedTypes.Add("Triangle");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ShapeOrNull.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ShapeOrNull.cs
index 7ad0f257bf6..11456f9c653 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ShapeOrNull.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ShapeOrNull.cs
@@ -157,10 +157,20 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "Quadrilateral":
- newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShapeOrNull.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ }
return newShapeOrNull;
case "Triangle":
- newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShapeOrNull.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ }
return newShapeOrNull;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for ShapeOrNull. Possible values: Quadrilateral Triangle", discriminatorValue));
@@ -172,7 +182,12 @@ namespace Org.OpenAPITools.Model
try
{
- newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShapeOrNull.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ }
matchedTypes.Add("Quadrilateral");
match++;
}
@@ -184,7 +199,12 @@ namespace Org.OpenAPITools.Model
try
{
- newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newShapeOrNull.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newShapeOrNull = new ShapeOrNull(JsonConvert.DeserializeObject(jsonString, ShapeOrNull.SerializerSettings));
+ }
matchedTypes.Add("Triangle");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Triangle.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Triangle.cs
index 04211f42ad3..efe1b348399 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Triangle.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Triangle.cs
@@ -174,13 +174,28 @@ namespace Org.OpenAPITools.Model
switch (discriminatorValue)
{
case "EquilateralTriangle":
- newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newTriangle.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ }
return newTriangle;
case "IsoscelesTriangle":
- newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newTriangle.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ }
return newTriangle;
case "ScaleneTriangle":
- newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newTriangle.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ }
return newTriangle;
default:
System.Diagnostics.Debug.WriteLine(String.Format("Failed to lookup discriminator value `{0}` for Triangle. Possible values: EquilateralTriangle IsoscelesTriangle ScaleneTriangle", discriminatorValue));
@@ -192,7 +207,12 @@ namespace Org.OpenAPITools.Model
try
{
- newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newTriangle.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ }
matchedTypes.Add("EquilateralTriangle");
match++;
}
@@ -204,7 +224,12 @@ namespace Org.OpenAPITools.Model
try
{
- newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newTriangle.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ }
matchedTypes.Add("IsoscelesTriangle");
match++;
}
@@ -216,7 +241,12 @@ namespace Org.OpenAPITools.Model
try
{
- newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newTriangle.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newTriangle = new Triangle(JsonConvert.DeserializeObject(jsonString, Triangle.SerializerSettings));
+ }
matchedTypes.Add("ScaleneTriangle");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/AbstractOpenAPISchema.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/AbstractOpenAPISchema.cs
index b37dea7796d..b3fc4c3c7a3 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/AbstractOpenAPISchema.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/AbstractOpenAPISchema.cs
@@ -36,6 +36,23 @@ namespace Org.OpenAPITools.Model
}
};
+ ///
+ /// Custom JSON serializer for objects with additional properties
+ ///
+ static public readonly JsonSerializerSettings AdditionalPropertiesSerializerSettings = new JsonSerializerSettings
+ {
+ // OpenAPI generated types generally hide default constructors.
+ ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor,
+ MissingMemberHandling = MissingMemberHandling.Ignore,
+ ContractResolver = new DefaultContractResolver
+ {
+ NamingStrategy = new CamelCaseNamingStrategy
+ {
+ OverrideSpecifiedNames = false
+ }
+ }
+ };
+
///
/// Gets or Sets the actual instance
///
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Fruit.cs
index a7f438115d2..8226bbd0a2f 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Fruit.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Fruit.cs
@@ -147,7 +147,12 @@ namespace Org.OpenAPITools.Model
try
{
- newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.SerializerSettings));
+ newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newFruit.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.SerializerSettings));
+ }
matchedTypes.Add("Apple");
match++;
}
@@ -159,7 +164,12 @@ namespace Org.OpenAPITools.Model
try
{
- newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.SerializerSettings));
+ newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newFruit.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newFruit = new Fruit(JsonConvert.DeserializeObject(jsonString, Fruit.SerializerSettings));
+ }
matchedTypes.Add("Banana");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/FruitReq.cs
index 09cde406cb8..57d5d8d271b 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/FruitReq.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/FruitReq.cs
@@ -156,7 +156,12 @@ namespace Org.OpenAPITools.Model
try
{
- newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.SerializerSettings));
+ newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newFruitReq.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.SerializerSettings));
+ }
matchedTypes.Add("AppleReq");
match++;
}
@@ -168,7 +173,12 @@ namespace Org.OpenAPITools.Model
try
{
- newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.SerializerSettings));
+ newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newFruitReq.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newFruitReq = new FruitReq(JsonConvert.DeserializeObject(jsonString, FruitReq.SerializerSettings));
+ }
matchedTypes.Add("BananaReq");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Mammal.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Mammal.cs
index 4f0ad883d37..61e4f1b93f9 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Mammal.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Mammal.cs
@@ -174,7 +174,12 @@ namespace Org.OpenAPITools.Model
try
{
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
matchedTypes.Add("Pig");
match++;
}
@@ -186,7 +191,12 @@ namespace Org.OpenAPITools.Model
try
{
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
matchedTypes.Add("Whale");
match++;
}
@@ -198,7 +208,12 @@ namespace Org.OpenAPITools.Model
try
{
- newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newMammal.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newMammal = new Mammal(JsonConvert.DeserializeObject(jsonString, Mammal.SerializerSettings));
+ }
matchedTypes.Add("Zebra");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/NullableShape.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/NullableShape.cs
index 51342cc2320..ca91962748c 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/NullableShape.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/NullableShape.cs
@@ -157,7 +157,12 @@ namespace Org.OpenAPITools.Model
try
{
- newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newNullableShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ }
matchedTypes.Add("Quadrilateral");
match++;
}
@@ -169,7 +174,12 @@ namespace Org.OpenAPITools.Model
try
{
- newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newNullableShape.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newNullableShape = new NullableShape(JsonConvert.DeserializeObject(jsonString, NullableShape.SerializerSettings));
+ }
matchedTypes.Add("Triangle");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Pig.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Pig.cs
index 7307703a953..65b0d0db4a3 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Pig.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Pig.cs
@@ -148,7 +148,12 @@ namespace Org.OpenAPITools.Model
try
{
- newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newPig.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ }
matchedTypes.Add("BasquePig");
match++;
}
@@ -160,7 +165,12 @@ namespace Org.OpenAPITools.Model
try
{
- newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.AdditionalPropertiesSerializerSettings));
+ // if it does not contains "AdditionalProperties", use SerializerSettings to deserialize
+ if (newPig.GetType().GetProperty("AdditionalProperties") == null)
+ {
+ newPig = new Pig(JsonConvert.DeserializeObject(jsonString, Pig.SerializerSettings));
+ }
matchedTypes.Add("DanishPig");
match++;
}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Quadrilateral.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Quadrilateral.cs
index 17724e7ee14..3a482ec7031 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Quadrilateral.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Quadrilateral.cs
@@ -148,7 +148,12 @@ namespace Org.OpenAPITools.Model
try
{
- newQuadrilateral = new Quadrilateral(JsonConvert.DeserializeObject