Skip to content

Commit 8e20197

Browse files
committed
Don't throw null argument exception for non-required reference types when nrt is enabled
1 parent 067c9b2 commit 8e20197

1 file changed

Lines changed: 19 additions & 1 deletion

File tree

modules/openapi-generator/src/main/resources/csharp/libraries/generichost/JsonConverter.mustache

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,9 +276,18 @@
276276
{{/allVars}}
277277
{{#allVars}}
278278
{{^isNullable}}
279+
{{#required}}
279280
if ({{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}.IsSet && {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}.Value == null)
280281
throw new ArgumentNullException(nameof({{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}), "Property is not nullable for class {{classname}}.");
281282

283+
{{/required}}
284+
{{^required}}
285+
{{^nrt}}
286+
if ({{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}.IsSet && {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}.Value == null)
287+
throw new ArgumentNullException(nameof({{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}), "Property is not nullable for class {{classname}}.");
288+
289+
{{/nrt}}
290+
{{/required}}
282291
{{/isNullable}}
283292
{{/allVars}}
284293
{{^vendorExtensions.x-duplicated-data-type}}
@@ -430,9 +439,18 @@
430439
{{^isDiscriminator}}
431440
{{^isNullable}}
432441
{{#vendorExtensions.x-is-reference-type}}
433-
if ({{^required}}{{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}Option.IsSet && {{/required}}{{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}} == null)
442+
{{#required}}
443+
if ({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}} == null)
434444
throw new ArgumentNullException(nameof({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}), "Property is required for class {{classname}}.");
435445

446+
{{/required}}
447+
{{^required}}
448+
{{^nrt}}
449+
if ({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}Option.IsSet && {{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}} == null)
450+
throw new ArgumentNullException(nameof({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}), "Property is required for class {{classname}}.");
451+
452+
{{/nrt}}
453+
{{/required}}
436454
{{/vendorExtensions.x-is-reference-type}}
437455
{{/isNullable}}
438456
{{/isDiscriminator}}

0 commit comments

Comments
 (0)