quicktype icon indicating copy to clipboard operation
quicktype copied to clipboard

C#: Adds version 8 and expands nullability to reference types (#1632)

Open Flern opened this issue 10 months ago • 1 comments

Description

Relaxes nullability check for C# 8+ targeting. C# 8 introduced nullable reference types, thereby removing the restriction that only value types can be made nullable.

Related Issue

(https://github.com/glideapps/quicktype/issues/1632)

Motivation and Context

Specifically when using System.Text.Json, the new nullable ignore attribute does not trigger Roslyn warning CS8601, leading to potential runtime null reference exceptions.

Previous Behaviour / Output

Previously, reference types such as string would not include the ? nullability indicator.

New Behaviour / Output

Now, all C# types (reference and value) will include ? when optional, since the serialized data may contain null values for those properties per the specification.

How Has This Been Tested?

Ran before and after examples in a Docker environment.

Screenshots (if appropriate):

image

Flern avatar Mar 28 '25 21:03 Flern

Hey all....

We've just bumped into this issue due to using the models generated from the schema in a .NET API due to lack of support of nullable reference types the binder fails if the null, this looks like the fix we need.

Is there anything we can do to support this PR?

Thanks

TheRubble avatar Oct 24 '25 14:10 TheRubble