Soenneker.Dtos.ProblemDetails
4.0.456
Prefix Reserved
dotnet add package Soenneker.Dtos.ProblemDetails --version 4.0.456
NuGet\Install-Package Soenneker.Dtos.ProblemDetails -Version 4.0.456
<PackageReference Include="Soenneker.Dtos.ProblemDetails" Version="4.0.456" />
<PackageVersion Include="Soenneker.Dtos.ProblemDetails" Version="4.0.456" />
<PackageReference Include="Soenneker.Dtos.ProblemDetails" />
paket add Soenneker.Dtos.ProblemDetails --version 4.0.456
#r "nuget: Soenneker.Dtos.ProblemDetails, 4.0.456"
#:package Soenneker.Dtos.ProblemDetails@4.0.456
#addin nuget:?package=Soenneker.Dtos.ProblemDetails&version=4.0.456
#tool nuget:?package=Soenneker.Dtos.ProblemDetails&version=4.0.456
Soenneker.Dtos.ProblemDetails
A serializer-friendly problem-details DTO for APIs and clients that do not want a dependency on ASP.NET Core MVC's ProblemDetails type. It supports both System.Text.Json and Newtonsoft.Json.
Install
dotnet add package Soenneker.Dtos.ProblemDetails
Create a problem response
using Soenneker.Dtos.ProblemDetails;
var problem = new ProblemDetailsDto
{
Type = "https://api.example.com/problems/invalid-order",
Title = "The order is invalid",
Status = 400,
Detail = "At least one line item is required.",
Instance = "/orders/8f25"
};
problem.Extensions["orderId"] = "8f25";
problem.Extensions["retryable"] = false;
Extension entries are flattened into the top-level JSON object:
{
"type": "https://api.example.com/problems/invalid-order",
"title": "The order is invalid",
"status": 400,
"detail": "At least one line item is required.",
"instance": "/orders/8f25",
"orderId": "8f25",
"retryable": false
}
All standard members are optional. Newtonsoft.Json omits null standard members because its attributes specify NullValueHandling.Ignore; with System.Text.Json, null omission follows the options supplied to your serializer.
Status is payload data only—it does not set an HTTP response's status code. When deserializing, extension values may materialize as serializer-specific types such as JsonElement or JToken, so avoid assuming they round-trip to their original CLR types.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- Newtonsoft.Json (>= 13.0.4)
- Soenneker.Attributes.PublicOpenApiObject (>= 4.0.52)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Soenneker.Dtos.ProblemDetails:
| Package | Downloads |
|---|---|
|
Soenneker.Dtos.Results.Operation
A standardized wrapper for the outcome of an operation, containing either a successful result value or a ProblemDetails describing the error, along with an HTTP status code. |
|
|
Soenneker.Maui.Admob
A cross-platform library for adding Google Admob ads to MAUI applications |
|
|
Soenneker.TrustedForm.Blazor
Loads ActiveProspect TrustedForm in Blazor and exposes recording, certificate URL, and finalization controls. |
|
|
Soenneker.Dtos.Results.Api
A generic container for API responses with ProblemDetails support. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.456 | 1,844 | 8/30/2026 |
| 4.0.455 | 57 | 8/30/2026 |
| 4.0.454 | 50 | 8/29/2026 |
| 4.0.452 | 7,802 | 8/18/2026 |
| 4.0.451 | 85 | 8/18/2026 |
| 4.0.450 | 1,733 | 8/11/2026 |
| 4.0.449 | 7,173 | 7/28/2026 |
| 4.0.448 | 120 | 7/28/2026 |
| 4.0.447 | 8,793 | 7/16/2026 |
| 4.0.446 | 108 | 7/16/2026 |
| 4.0.445 | 3,036 | 7/14/2026 |
| 4.0.444 | 9,927 | 6/18/2026 |
| 4.0.442 | 5,854 | 6/9/2026 |
| 4.0.441 | 5,190 | 6/5/2026 |
| 4.0.440 | 135 | 6/5/2026 |
| 4.0.439 | 5,678 | 5/12/2026 |
| 4.0.438 | 8,367 | 4/22/2026 |
| 4.0.437 | 122 | 4/22/2026 |
| 4.0.436 | 147 | 4/21/2026 |
| 4.0.435 | 4,348 | 4/14/2026 |
Clarify problem details serialization