Skip to content

HowToTurnCSharpObjectIntoJson: .NET 10, source generation and options reuse examples - #2359

Merged
vladimir-pecanac-main merged 2 commits into
CodeMazeBlog:mainfrom
vladimir-pecanac-main:seo/72197-csharp-object-into-json-string-dotnet
Nov 13, 2026
Merged

vladimir-pecanac-main merged 2 commits into
CodeMazeBlog:mainfrom
vladimir-pecanac-main:seo/72197-csharp-object-into-json-string-dotnet

Conversation

@vladimir-pecanac-main

Copy link
Copy Markdown
Collaborator

Moves the HowToTurnCSharpObjectIntoJson sample to net10.0 with Newtonsoft.Json 13.0.4, MSTest 4.5.2, Microsoft.NET.Test.Sdk 18.11.0 and coverlet.collector 10.1.0, replaces the removed Assert.ThrowsException with Assert.ThrowsExactly, initialises the models' string properties for nullable reference types, makes the en-US date asserts compute their expected string so they hold on Linux ICU, and adds a source-generated ProductJsonContext with three new tests covering the generated context, a reused JsonSerializerOptions instance and Newtonsoft's PreserveReferencesHandling.

… and options reuse examples

Both projects target net10.0. Newtonsoft.Json 13.0.4, MSTest 4.5.2,
Microsoft.NET.Test.Sdk 18.11.0, coverlet.collector 10.1.0.
Assert.ThrowsException becomes Assert.ThrowsExactly (MSTest 4).
Models initialise string properties and Employee.Department is nullable.
Date asserts compute the expected en-US string so they pass on Linux ICU.
New ProductJsonContext and three tests: source-generated context,
reused options instance, Newtonsoft PreserveReferencesHandling.
@vladimir-pecanac-main
vladimir-pecanac-main merged commit 198b781 into CodeMazeBlog:main Nov 13, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant