Interface IBowireServiceContribution
- Namespace
- Kuestenlogik.Bowire.Plugins
- Assembly
- Kuestenlogik.Bowire.dll
Contract a Bowire-sibling package implements to register its services
into the host's IServiceCollection at
AddBowire() time (#325, v2.1).
public interface IBowireServiceContribution
Remarks
Introduced when Welle 2 of the v2.1 package cleanup lifted the
interceptor surface out of Core into
Kuestenlogik.Bowire.Interceptor. Core's
BowireServiceCollectionExtensions.AddBowire no longer calls
the interceptor's AddBowireInterceptorCore directly — it
discovers every public implementation of this interface from loaded
Kuestenlogik.Bowire.* assemblies and invokes
ConfigureServices(IServiceCollection) on each.
Implementations must have a parameterless constructor;
implementations are expected to be idempotent (TryAddSingleton
where appropriate) because a host that explicitly opted in via
app.UseBowireInterceptor() already registered the supporting
services.
Failure to configure (any exception escaping
ConfigureServices(IServiceCollection)) is swallowed silently — same
posture as the IBowireProtocolServices auto-discovery pass.
A misbehaving plugin can't take down host startup.
Methods
ConfigureServices(IServiceCollection)
Register this contribution's services. Called once per host
startup from BowireServiceCollectionExtensions.AddBowire.
void ConfigureServices(IServiceCollection services)
Parameters
servicesIServiceCollectionThe host's service collection.