warning SYSLIB1037: The type '' defines init-only properties, deserialization of which is currently not supported in source generation mode.
2 days ago I introduced the System.Text.Json source generator and showed you how to use it in ASP.NET Core. What I didn’t told you that it didn’t go so smoothly.
If you had a good look at the generated code I shared, you maybe noticed the following lines:
The generated setter on the property will not work and instead throw an InvalidOperationException
.
This also appears as a warning during the build process:
CSC : warning SYSLIB1037: The type 'OrderDto' defines init-only properties, deserialization of which is currently not supported in source generation mode.
More information about this warning: https://docs.microsoft.com/en-us/dotnet/fundamentals/syslib-diagnostics/syslib1037
The reason is that my OrderDto
is a record type using init-only properties:
There is not much we can do to fix this else then switching to mutable properties:
I searched around further on the web about this issue and found the following related Github issues:
The good news that Microsoft is looking into this issue and that maybe a solution will be provided in .NET 7.