Nerdbank.Json.AspNetCoreMvcFormatter 0.1.1010-alpha

Prefix Reserved
This is a prerelease version of Nerdbank.Json.AspNetCoreMvcFormatter.
dotnet add package Nerdbank.Json.AspNetCoreMvcFormatter --version 0.1.1010-alpha
                    
NuGet\Install-Package Nerdbank.Json.AspNetCoreMvcFormatter -Version 0.1.1010-alpha
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Nerdbank.Json.AspNetCoreMvcFormatter" Version="0.1.1010-alpha" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Nerdbank.Json.AspNetCoreMvcFormatter" Version="0.1.1010-alpha" />
                    
Directory.Packages.props
<PackageReference Include="Nerdbank.Json.AspNetCoreMvcFormatter" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Nerdbank.Json.AspNetCoreMvcFormatter --version 0.1.1010-alpha
                    
#r "nuget: Nerdbank.Json.AspNetCoreMvcFormatter, 0.1.1010-alpha"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Nerdbank.Json.AspNetCoreMvcFormatter@0.1.1010-alpha
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Nerdbank.Json.AspNetCoreMvcFormatter&version=0.1.1010-alpha&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Nerdbank.Json.AspNetCoreMvcFormatter&version=0.1.1010-alpha&prerelease
                    
Install as a Cake Tool

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/PipeWriter APIs;
  • 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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