diff --git a/modules/openapi-generator/src/main/resources/csharp-netcore/modelGeneric.mustache b/modules/openapi-generator/src/main/resources/csharp-netcore/modelGeneric.mustache
index 6849674ff52..0b0f33a9307 100644
--- a/modules/openapi-generator/src/main/resources/csharp-netcore/modelGeneric.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp-netcore/modelGeneric.mustache
@@ -35,6 +35,17 @@
{{/description}}
[DataMember(Name = "{{baseName}}"{{#required}}, IsRequired = true{{/required}}, EmitDefaultValue = {{#vendorExtensions.x-emit-default-value}}true{{/vendorExtensions.x-emit-default-value}}{{^vendorExtensions.x-emit-default-value}}{{#isNullable}}true{{/isNullable}}{{^isNullable}}false{{/isNullable}}{{/vendorExtensions.x-emit-default-value}})]
public {{#complexType}}{{{complexType}}}{{/complexType}}{{^complexType}}{{{datatypeWithEnum}}}{{/complexType}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}} {{name}} { get; set; }
+ {{#isReadOnly}}
+
+ ///
+ /// Returns false as {{name}} should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerialize{{name}}()
+ {
+ return false;
+ }
+ {{/isReadOnly}}
{{/isEnum}}
{{/vars}}
{{#hasRequired}}
@@ -118,6 +129,17 @@
{{/isDate}}
public {{{dataType}}} {{name}} { get; {{#isReadOnly}}private {{/isReadOnly}}set; }
+ {{#isReadOnly}}
+ ///
+ /// Returns false as {{name}} should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerialize{{name}}()
+ {
+ return false;
+ }
+
+ {{/isReadOnly}}
{{/isEnum}}
{{/isInherited}}
{{/vars}}
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs
index c339d9213d5..f9acea4a20b 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs
@@ -47,12 +47,30 @@ namespace Org.OpenAPITools.Model
[DataMember(Name = "bar", EmitDefaultValue = false)]
public string Bar { get; private set; }
+ ///
+ /// Returns false as Bar should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerializeBar()
+ {
+ return false;
+ }
+
///
/// Gets or Sets Foo
///
[DataMember(Name = "foo", EmitDefaultValue = false)]
public string Foo { get; private set; }
+ ///
+ /// Returns false as Foo should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerializeFoo()
+ {
+ return false;
+ }
+
///
/// Gets or Sets additional properties
///
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Name.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Name.cs
index ab4ad85ad10..d110bce48fd 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Name.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Name.cs
@@ -64,6 +64,15 @@ namespace Org.OpenAPITools.Model
[DataMember(Name = "snake_case", EmitDefaultValue = false)]
public int SnakeCase { get; private set; }
+ ///
+ /// Returns false as SnakeCase should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerializeSnakeCase()
+ {
+ return false;
+ }
+
///
/// Gets or Sets Property
///
@@ -76,6 +85,15 @@ namespace Org.OpenAPITools.Model
[DataMember(Name = "123Number", EmitDefaultValue = false)]
public int _123Number { get; private set; }
+ ///
+ /// Returns false as _123Number should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerialize_123Number()
+ {
+ return false;
+ }
+
///
/// Gets or Sets additional properties
///
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs
index d30f36c3888..65828ea4a98 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs
@@ -48,6 +48,15 @@ namespace Org.OpenAPITools.Model
[DataMember(Name = "bar", EmitDefaultValue = false)]
public string Bar { get; private set; }
+ ///
+ /// Returns false as Bar should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerializeBar()
+ {
+ return false;
+ }
+
///
/// Gets or Sets Baz
///
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 2d2fd1316a9..8911ce6ac36 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
@@ -27,7 +27,7 @@ namespace Org.OpenAPITools.Test
/// Test GetServerUrl
///
[Fact]
- public void testOneOfSchemaAdditionalProperties()
+ public void TestOneOfSchemaAdditionalProperties()
{
// TODO
}
@@ -36,7 +36,7 @@ namespace Org.OpenAPITools.Test
/// Test GetServerUrl
///
[Fact]
- public void testOneOfSchemaWithDiscriminator()
+ public void TestOneOfSchemaWithDiscriminator()
{
// Mammal can be one of whale, pig and zebra.
// pig has sub-classes.
@@ -45,7 +45,7 @@ namespace Org.OpenAPITools.Test
Mammal m = Mammal.FromJson(str);
Assert.NotNull(m);
Assert.IsType(m.ActualInstance);
-
+
String str2 = "{ \"className\": \"zebra\", \"type\": \"plains\" }";
Mammal m2 = Mammal.FromJson(str2);
Assert.NotNull(m2);
@@ -56,7 +56,7 @@ namespace Org.OpenAPITools.Test
/// Test Fruit
///
[Fact]
- public void testFruit()
+ public void TestFruit()
{
Apple a = new Apple();
a.Origin = "Japan";
@@ -95,5 +95,16 @@ namespace Org.OpenAPITools.Test
// test custom serializer
Assert.Equal("{\"lengthCm\":98.0}", JsonConvert.SerializeObject(f5));
}
+
+ ///
+ /// ReadOnly property tests
+ ///
+ [Fact]
+ public void ReadOnlyFruit()
+ {
+ ReadOnlyFirst r = JsonConvert.DeserializeObject("{\"baz\":\"from json gaz\",\"bar\":\"from json bar\"}");
+ Assert.Equal("from json bar", r.Bar);
+ Assert.Equal("{\"baz\":\"from json gaz\"}", JsonConvert.SerializeObject(r));
+ }
}
}
\ No newline at end of file
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs
index c339d9213d5..f9acea4a20b 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs
@@ -47,12 +47,30 @@ namespace Org.OpenAPITools.Model
[DataMember(Name = "bar", EmitDefaultValue = false)]
public string Bar { get; private set; }
+ ///
+ /// Returns false as Bar should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerializeBar()
+ {
+ return false;
+ }
+
///
/// Gets or Sets Foo
///
[DataMember(Name = "foo", EmitDefaultValue = false)]
public string Foo { get; private set; }
+ ///
+ /// Returns false as Foo should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerializeFoo()
+ {
+ return false;
+ }
+
///
/// Gets or Sets additional properties
///
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs
index ab4ad85ad10..d110bce48fd 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs
@@ -64,6 +64,15 @@ namespace Org.OpenAPITools.Model
[DataMember(Name = "snake_case", EmitDefaultValue = false)]
public int SnakeCase { get; private set; }
+ ///
+ /// Returns false as SnakeCase should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerializeSnakeCase()
+ {
+ return false;
+ }
+
///
/// Gets or Sets Property
///
@@ -76,6 +85,15 @@ namespace Org.OpenAPITools.Model
[DataMember(Name = "123Number", EmitDefaultValue = false)]
public int _123Number { get; private set; }
+ ///
+ /// Returns false as _123Number should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerialize_123Number()
+ {
+ return false;
+ }
+
///
/// Gets or Sets additional properties
///
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs
index d30f36c3888..65828ea4a98 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs
@@ -48,6 +48,15 @@ namespace Org.OpenAPITools.Model
[DataMember(Name = "bar", EmitDefaultValue = false)]
public string Bar { get; private set; }
+ ///
+ /// Returns false as Bar should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerializeBar()
+ {
+ return false;
+ }
+
///
/// Gets or Sets Baz
///
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs
index 56025dd01d7..1a7ca766e79 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs
@@ -46,12 +46,30 @@ namespace Org.OpenAPITools.Model
[DataMember(Name = "bar", EmitDefaultValue = false)]
public string Bar { get; private set; }
+ ///
+ /// Returns false as Bar should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerializeBar()
+ {
+ return false;
+ }
+
///
/// Gets or Sets Foo
///
[DataMember(Name = "foo", EmitDefaultValue = false)]
public string Foo { get; private set; }
+ ///
+ /// Returns false as Foo should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerializeFoo()
+ {
+ return false;
+ }
+
///
/// Returns the string presentation of the object
///
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Name.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Name.cs
index bf0b534b7f3..87642a1ba7b 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Name.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Name.cs
@@ -60,6 +60,15 @@ namespace Org.OpenAPITools.Model
[DataMember(Name = "snake_case", EmitDefaultValue = false)]
public int SnakeCase { get; private set; }
+ ///
+ /// Returns false as SnakeCase should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerializeSnakeCase()
+ {
+ return false;
+ }
+
///
/// Gets or Sets Property
///
@@ -72,6 +81,15 @@ namespace Org.OpenAPITools.Model
[DataMember(Name = "123Number", EmitDefaultValue = false)]
public int _123Number { get; private set; }
+ ///
+ /// Returns false as _123Number should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerialize_123Number()
+ {
+ return false;
+ }
+
///
/// Returns the string presentation of the object
///
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs
index 1a24ed159c7..af290bd3a34 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs
@@ -47,6 +47,15 @@ namespace Org.OpenAPITools.Model
[DataMember(Name = "bar", EmitDefaultValue = false)]
public string Bar { get; private set; }
+ ///
+ /// Returns false as Bar should not be serialized given that it's read-only.
+ ///
+ /// false (boolean)
+ public bool ShouldSerializeBar()
+ {
+ return false;
+ }
+
///
/// Gets or Sets Baz
///