Nerdbank.Json.AspNetCoreMvcFormatter
0.1.1010-alpha
Prefix Reserved
dotnet add package Nerdbank.Json.AspNetCoreMvcFormatter --version 0.1.1010-alpha
NuGet\Install-Package Nerdbank.Json.AspNetCoreMvcFormatter -Version 0.1.1010-alpha
<PackageReference Include="Nerdbank.Json.AspNetCoreMvcFormatter" Version="0.1.1010-alpha" />
<PackageVersion Include="Nerdbank.Json.AspNetCoreMvcFormatter" Version="0.1.1010-alpha" />
<PackageReference Include="Nerdbank.Json.AspNetCoreMvcFormatter" />
paket add Nerdbank.Json.AspNetCoreMvcFormatter --version 0.1.1010-alpha
#r "nuget: Nerdbank.Json.AspNetCoreMvcFormatter, 0.1.1010-alpha"
#:package Nerdbank.Json.AspNetCoreMvcFormatter@0.1.1010-alpha
#addin nuget:?package=Nerdbank.Json.AspNetCoreMvcFormatter&version=0.1.1010-alpha&prerelease
#tool nuget:?package=Nerdbank.Json.AspNetCoreMvcFormatter&version=0.1.1010-alpha&prerelease
Nerdbank.Json.AspNetCoreMvcFormatter
ASP.NET Core MVC input and output formatters backed by Nerdbank.Json, enabling AOT-safe, source-generated JSON in MVC and minimal-hosting Web APIs.
Unlike the built-in System.Text.Json formatters, these formatters:
- use an explicitly supplied, source-generated
ITypeShapeProvider— no reflection and no runtime type discovery; - stream request and response bodies incrementally through Nerdbank.Json's
PipeReader/PipeWriterAPIs; - are trimming- and NativeAOT-safe.
Usage
using Microsoft.Extensions.DependencyInjection;
using Nerdbank.Json;
using PolyType;
var serializer = new JsonSerializer();
builder.Services
.AddControllers()
.AddNerdbankJsonFormatters(serializer, MyWitness.GeneratedTypeShapeProvider);
MyWitness is any type (often a witness) that lists your model types via [GenerateShape] /
[GenerateShapeFor<T>]; its generated ITypeShapeProvider describes every type the formatters can read or write.
By default the Nerdbank.Json formatters are inserted before the built-in System.Text.Json formatters (so they win
content negotiation for application/json and +json media types) but do not remove them. To fully take over JSON
handling:
.AddNerdbankJsonFormatters(serializer, provider, o => o.ReplaceSystemTextJsonFormatters = true);
If the provider has no shape for a model type, the formatters throw a MissingTypeShapeException rather than silently
binding null or falling through, so misconfiguration is obvious.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.VisualStudio.Validation (>= 17.13.22)
- Nerdbank.Json (>= 0.1.1010-alpha)
- Nerdbank.MessagePack (>= 1.2.4)
- PolyType (>= 1.3.1)
-
net8.0
- Microsoft.VisualStudio.Validation (>= 17.13.22)
- Nerdbank.Json (>= 0.1.1010-alpha)
- Nerdbank.MessagePack (>= 1.2.4)
- PolyType (>= 1.3.1)
- System.IO.Pipelines (>= 10.0.10)
-
net9.0
- Microsoft.VisualStudio.Validation (>= 17.13.22)
- Nerdbank.Json (>= 0.1.1010-alpha)
- Nerdbank.MessagePack (>= 1.2.4)
- PolyType (>= 1.3.1)
- System.IO.Pipelines (>= 10.0.10)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.1010-alpha | 63 | 9/1/2026 |