Nextended.ResponseFilters.AspNetCore
10.1.9
dotnet add package Nextended.ResponseFilters.AspNetCore --version 10.1.9
NuGet\Install-Package Nextended.ResponseFilters.AspNetCore -Version 10.1.9
<PackageReference Include="Nextended.ResponseFilters.AspNetCore" Version="10.1.9" />
<PackageVersion Include="Nextended.ResponseFilters.AspNetCore" Version="10.1.9" />
<PackageReference Include="Nextended.ResponseFilters.AspNetCore" />
paket add Nextended.ResponseFilters.AspNetCore --version 10.1.9
#r "nuget: Nextended.ResponseFilters.AspNetCore, 10.1.9"
#:package Nextended.ResponseFilters.AspNetCore@10.1.9
#addin nuget:?package=Nextended.ResponseFilters.AspNetCore&version=10.1.9
#tool nuget:?package=Nextended.ResponseFilters.AspNetCore&version=10.1.9
Nextended.ResponseFilters.AspNetCore
ASP.NET Core adapter for Nextended.ResponseFilters. Wires the response-filter pipeline into MVC as a global IAsyncResultFilter — every ObjectResult.Value runs through the configured filters before serialization.
Installation
dotnet add package Nextended.ResponseFilters.AspNetCore
Quick Start
Define a filter (see Nextended.ResponseFilters for the full API):
public class OrderResponseFilter : ResponseFilter<OrderDto>
{
public OrderResponseFilter()
{
Nullify(x => x.TotalCost).Unless(WhenContext(ctx =>
ctx.Services.GetRequiredService<ICurrentUser>().IsInRole("Finance")));
}
}
Wire it up once in Program.cs:
builder.Services.AddNextendedResponseFilters(new[]
{
typeof(OrderResponseFilter).Assembly
});
That's it — every controller that returns an OrderDto (or anything containing one) now ships through the pipeline before serialization.
What it does
HTTP request
↓
[ … middleware … ]
↓
Controller action → ObjectResult { Value = OrderDto }
↓
ResponseFilterResultFilter (IAsyncResultFilter)
→ IResponseFilterPipeline.ProcessAsync(value, ctx)
→ walks the graph, applies registered filters
↓
JSON serializer
↓
HTTP response
The result filter is registered globally via MvcOptions.Filters.AddService<ResponseFilterResultFilter>(). Failures inside the pipeline are caught and logged — a buggy rule cannot 500 a request.
Notes
- The
IResponseFilterContexthanded to predicates hasHttpContext.RequestServicesandHttpContext.RequestAbortedpre-wired. - Filter scope follows the request scope by default. Override via the
lifetimeparameter ofAddNextendedResponseFiltersif needed. - If you also use ABP / FluentValidation / OData — the filter sits after model binding and before serialization, so it composes cleanly with all of them.
Supported Frameworks
- .NET 8.0, .NET 9.0, .NET 10.0
License
GPL-3.0-or-later.
| 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
- Nextended.ResponseFilters (>= 10.1.9)
-
net8.0
- Nextended.ResponseFilters (>= 10.1.9)
-
net9.0
- Nextended.ResponseFilters (>= 10.1.9)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.