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
                    
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="Innovabit.DotNet.Interceptors.Configuration" Version="2.0.117" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Innovabit.DotNet.Interceptors.Configuration" Version="2.0.117" />
                    
Directory.Packages.props
<PackageReference Include="Innovabit.DotNet.Interceptors.Configuration" />
                    
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 Innovabit.DotNet.Interceptors.Configuration --version 2.0.117
                    
#r "nuget: Innovabit.DotNet.Interceptors.Configuration, 2.0.117"
                    
#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 Innovabit.DotNet.Interceptors.Configuration@2.0.117
                    
#: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=Innovabit.DotNet.Interceptors.Configuration&version=2.0.117
                    
Install as a Cake Addin
#tool nuget:?package=Innovabit.DotNet.Interceptors.Configuration&version=2.0.117
                    
Install as a Cake Tool

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 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 (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