Innovabit.DotNet.Interceptors.Configuration
2.0.117
dotnet add package Innovabit.DotNet.Interceptors.Configuration --version 2.0.117
NuGet\Install-Package Innovabit.DotNet.Interceptors.Configuration -Version 2.0.117
<PackageReference Include="Innovabit.DotNet.Interceptors.Configuration" Version="2.0.117" />
<PackageVersion Include="Innovabit.DotNet.Interceptors.Configuration" Version="2.0.117" />
<PackageReference Include="Innovabit.DotNet.Interceptors.Configuration" />
paket add Innovabit.DotNet.Interceptors.Configuration --version 2.0.117
#r "nuget: Innovabit.DotNet.Interceptors.Configuration, 2.0.117"
#:package Innovabit.DotNet.Interceptors.Configuration@2.0.117
#addin nuget:?package=Innovabit.DotNet.Interceptors.Configuration&version=2.0.117
#tool nuget:?package=Innovabit.DotNet.Interceptors.Configuration&version=2.0.117
Innovabit.DotNet.Interceptors.Configuration
Drives the interceptor pipeline from IConfiguration. Switch interceptors off, move them in the
pipeline and set each feature's defaults from appsettings.json — per environment, without
recompiling.
Usage
builder.Services
.AddInterceptors()
.AddLogging()
.AddRetry()
.AddTracing()
.BindConfiguration(builder.Configuration.GetSection("Interceptors"))
.BindDefaults<LogDefaults>(builder.Configuration.GetSection("Interceptors:Log"));
{
"Interceptors": {
"Disabled": [ "TraceInterceptor" ],
"Order": { "CacheInterceptor": 150 },
"Log": { "IncludeInput": false, "IncludeOutput": false }
}
}
Disabled takes interceptors out of every proxy while leaving the registrations that put them
there alone. Order is the same scale as InterceptorOrders — lower runs further from the
method — and does the same job as SetOrder<T>(…) without needing the type.
Names are type names, short (TraceInterceptor) or full
(Innovabit.DotNet.Interceptors.Telemetry.TraceInterceptor), case-insensitively. A name that
matches nothing registered is ignored, so one shared file can cover several applications that
register different interceptors.
Run services.LogInterceptorPipeline(Console.WriteLine) after building the host to see what the
file actually did: the report lists disabled interceptors as (disabled) and shows each method's
interceptors at their effective order.
What to know
Code wins over the file for ordering. Register<T>(order) and SetOrder<T>(order) are keyed by
type, Order entries by name, and a type override is checked first. Both Disabled and Order
replace what an earlier bind left, so deleting an entry and reloading puts the default back
rather than leaving the last value applied.
Reloading reaches services resolved afterwards. A proxy captures its interceptors when it is
built, so a change during a reload applies to scoped and transient services from the next
resolution on — the next request, typically — and never to a singleton that has already been
created. Pass reloadOnChange: false if you would rather the pipeline was fixed at start-up.
A bad edit at run time does not take the process down. An order that is not a number throws at start-up, where it should. The same mistake made while the application is running leaves the last good values in place instead of throwing from the file-watcher thread.
BindDefaults<T> binds onto the instance the interceptors resolve, so it also reaches ones
already holding a reference to it, and it works whether it runs before or after the feature's
Add*. Properties the binder cannot build from a string — the Type-valued ones such as
LogDefaults.UseFormatter — have to stay in code.
License
MIT
| 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
- Innovabit.DotNet.Interceptors.Abstractions (>= 2.0.117)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.14)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.14)
-
net8.0
- Innovabit.DotNet.Interceptors.Abstractions (>= 2.0.117)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.14)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.14)
-
net9.0
- Innovabit.DotNet.Interceptors.Abstractions (>= 2.0.117)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.14)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.14)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Innovabit.DotNet.Interceptors.Configuration:
| Package | Downloads |
|---|---|
|
Innovabit.DotNet.Interceptors.All
Meta-package: every interceptor concern in the suite (logging, validation, caching, notifications, telemetry, audit, authorization, rate limiting, coordination, feature gates, transactions, retry/timeout/circuit breaker/fallback) in one reference. Providers are separate packages — pick the ones you use. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.117 | 0 | 10/31/2026 |
| 2.0.116 | 101 | 10/26/2026 |
| 2.0.115 | 122 | 10/17/2026 |
| 2.0.114 | 107 | 10/10/2026 |
| 2.0.113 | 116 | 10/3/2026 |
| 2.0.112 | 108 | 9/28/2026 |
| 2.0.111 | 113 | 9/28/2026 |
| 2.0.110 | 116 | 9/27/2026 |
| 2.0.109 | 124 | 9/26/2026 |
| 2.0.108 | 116 | 9/26/2026 |
| 2.0.107 | 118 | 9/26/2026 |
| 2.0.106 | 118 | 9/25/2026 |
| 2.0.105 | 124 | 9/25/2026 |