Release v7.10.4
Summary
Adds named observability DI extensions for keyed meters and activity sources, with typed resolution through IMeter<T> / IActivitySource<T>, and documents named registration in the metrics and traces sections.
Added
- Public
AddNamedMeter(string name)extension to register a keyedSystem.Diagnostics.Metrics.Meterand keyed open-genericIMeter<T>. - Public
AddNamedActivitySource(string name)extension to register a keyedSystem.Diagnostics.ActivitySourceand keyed open-genericIActivitySource<T>. - Focused DI specs for named diagnostics resolution under
for_DiagnosticsServiceCollectionExtensions. - New observability docs pages for named registration:
Documentation/csharp/metrics/named-registration.mdDocumentation/csharp/traces/named-registration.md
Changed
- Named meter registration now reuses existing
Meter<T>instead of a separateNamedMeter<T>implementation. - Named activity source registration now reuses existing
ActivitySource<T>instead of a separateNamedActivitySource<T>implementation. Meter<T>andActivitySource<T>now support keyed resolution via[FromKeyedServices]while preserving non-keyed fallback behavior.- Named diagnostics registrations use keyed factory-based singleton registration for underlying
Meter/ActivitySource, preserving container-managed lifetime/disposal. - Documentation was reorganized so named/keyed observability registration guidance lives under metrics and traces, not dependency injection:
- Updated
Documentation/csharp/metrics/index.mdandDocumentation/csharp/traces/index.mdto link to named registration pages. - Updated
Documentation/csharp/metrics/toc.ymlandDocumentation/csharp/traces/toc.ymlto include named registration pages. - Removed named observability registration guidance from
Documentation/csharp/dependency_injection.md.
- Updated
Fixed
IMeter<T>andIActivitySource<T>keyed resolutions bind to the correct named underlyingMeter/ActivitySourceinstance instead of defaulting to type-name instances.
Removed
- Removed
NamedMeter<T>in favor of the existingMeter<T>implementation. - Removed
NamedActivitySource<T>in favor of the existingActivitySource<T>implementation.
Security
- No security behavior change.
Deprecated
- None.