diff --git a/src/NJsonSchema.CodeGeneration.CSharp.Tests/AdditionalPropertiesTests.cs b/src/NJsonSchema.CodeGeneration.CSharp.Tests/AdditionalPropertiesTests.cs index 0df010cfa..3066a0ddf 100644 --- a/src/NJsonSchema.CodeGeneration.CSharp.Tests/AdditionalPropertiesTests.cs +++ b/src/NJsonSchema.CodeGeneration.CSharp.Tests/AdditionalPropertiesTests.cs @@ -42,6 +42,7 @@ public async Task When_additionalProperties_schema_is_set_for_object_then_specia //// Assert Assert.Contains("[Newtonsoft.Json.JsonExtensionData]", code); Assert.Contains("public System.Collections.Generic.IDictionary AdditionalProperties", code); + Assert.Contains("get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); }", code); } [Fact] @@ -80,6 +81,7 @@ public async Task When_using_SystemTextJson_additionalProperties_schema_is_set_f //// Assert Assert.Contains("[System.Text.Json.Serialization.JsonExtensionData]", code); Assert.Contains("public System.Collections.Generic.IDictionary AdditionalProperties", code); + Assert.Contains("get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); }", code); } [Fact] diff --git a/src/NJsonSchema.CodeGeneration.CSharp/Templates/Class.liquid b/src/NJsonSchema.CodeGeneration.CSharp/Templates/Class.liquid index ffd3baed5..41666803f 100644 --- a/src/NJsonSchema.CodeGeneration.CSharp/Templates/Class.liquid +++ b/src/NJsonSchema.CodeGeneration.CSharp/Templates/Class.liquid @@ -123,7 +123,7 @@ {%- if GenerateAdditionalPropertiesProperty -%} - private System.Collections.Generic.IDictionary _additionalProperties = new System.Collections.Generic.Dictionary(); + private System.Collections.Generic.IDictionary{% if GenerateNullableReferenceTypes %}?{% endif %} _additionalProperties; {%- if UseSystemTextJson -%} [System.Text.Json.Serialization.JsonExtensionData] @@ -132,7 +132,7 @@ {%- endif -%} public System.Collections.Generic.IDictionary AdditionalProperties { - get { return _additionalProperties; } + get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } {{PropertySetterAccessModifier}}set { _additionalProperties = value; } }