Skip to content

Compono.Metrics.CompositionBuilderExtensions.UseMetrics(thisCompono.CompositionBuilder)

Compono.Metrics

Compono.Metrics.CompositionBuilderExtensions

CompositionBuilderExtensions.UseMetrics(this CompositionBuilder) Method

Registers a stage-6 test-double provider (Compono.Metrics.MetricsProvider) so a bare System.Diagnostics.Metrics.IMeterFactory composes as a new CapturingMeterFactory per request.

public static Compono.CompositionBuilder UseMetrics(this Compono.CompositionBuilder builder);

Parameters

builder CompositionBuilder

The builder to register into.

Returns

CompositionBuilder
The same builder, for chaining.

Exceptions

System.ArgumentNullException
builder is null.

Remarks

Register this beforeUseNSubstitute() or any other catch-all test-double provider if System.Diagnostics.Metrics.IMeterFactory should resolve through Compono.Metrics rather than a substitute - Compono's stage-6 providers resolve in registration order (first-registered-wins), an existing, documented, Accepted pattern (ADR-0024) this package follows rather than replacing. An exact Register<IMeterFactory>(...) always wins over UseMetrics() regardless of order.

Order against UseGeneratedTestDoubles() doesn't matter while ComponoMetricsOwnsMeterFactory is enabled (the default whenever Compono.Metrics is referenced): System.Diagnostics.Metrics.IMeterFactory is then Metrics-owned and Compono.TestDoubles never generates a double for it. The same default means a composer that calls UseGeneratedTestDoubles() without UseMetrics() gets no System.Diagnostics.Metrics.IMeterFactory double at all. See docs/adr/0072-compono-metrics-testing-support-package.md Amendment 5.