feat: keyed refit generated client DI registration - #2297
Merged
glennawatson merged 2 commits intoAug 5, 2026
Conversation
…rity AddRefitGeneratedClient<T> had no keyed counterpart, so Native AOT and trimmed apps could not register the same Refit interface more than once with different configuration without falling back to the reflection path. Adds AddKeyedRefitGeneratedClient<T> on IServiceCollection mirroring all five AddRefitGeneratedClient<T> overloads with a leading serviceKey. The client and its SettingsFor<T> register as keyed services, the underlying HttpClient name defaults to UniqueName.ForType<T>(serviceKey), and handler composition follows AddKeyedRefitClient so both keyed paths behave alike. No reflection fallback and no RequiresUnreferencedCode annotation. Purely additive.
glennawatson
approved these changes
Aug 5, 2026
Contributor
|
Thanks again. |
|
This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What kind of change does this PR introduce?
Fixes #2296.
What is the new behavior?
Adds
AddKeyedRefitGeneratedClient<T>toRefit.HttpClientFactory, the keyed counterpart toAddRefitGeneratedClient<T>. Before this,Refit.HttpClientFactoryoffered keyed registration only on thereflection-capable path (
AddRefitClient/AddKeyedRefitClient), so Native AOT and trimmed applications —which are steered toward
AddRefitGeneratedClient<T>— could not register the same interface more than oncewith different configuration without giving up the AOT-clean path.
What is the current behavior?
There are only reflection based overloads for registering keyed clients.
What might this PR break?
Nothing
Checklist
mainbranchAdditional information