Comments (2)
Order does matter when registering a service, and in this container the last registration wins when you are requesting a single service. So if you have
services.AddTransient<MyClient>(provider => ...);
services.AddTransient<MyClient>(provider => ...);
then when you ask for MyClient, only the second factory will run.
services.AddHttpClient<MyClient>()
internally calls a few things, but it ends up with
services.AddTransient<MyClient>(provider => ... some IHttpClientFactory and ITypedHttpClientFactory calls)
so it will override (in the working case) your first AddTransient call with one that correctly adds the configured httpclient to your MyClient's constructor
In your non-working case, your AddTransient is overriding the HttpClientFactory's transient, so when it tries to instantiate your MyClient it will fail because HttpClient is not a service that was registered.
from httpclientfactory.
Thank you for the quick answer! I understand why this is happening and indeed I don't have to register my service, AddHttpClient does that behind the scenes. With Ninject and other containers I have experience with you can control which instance get injected into what. I thought AddHttpClient was doing just that. I can see now in this documentation, it clearly states what is going on.
Thank you for the quick feedback!
from httpclientfactory.
Related Issues (20)
- How Can I Use ClientCertificates in HttpClientFactory.CreateClient HOT 4
- Getting a endless HttpMessageHandler cleanup cycle HOT 29
- Adding a HttpMessageHandlerType that is registred as Transint in IServiceCollection creates strange results HOT 14
- Microsoft.Extensions.Http.Polly.dll is code signed but Polly.Extensions.Http.dll and Polly.dll are not HOT 4
- Don't capture the ExecutionContext in Timers created for expiry HOT 1
- Asp.net restart: Cannot find method HOT 7
- Error: Unable to resolve service for type 'Microsoft.Extensions.Logging.ILogger' while attempting to activate HOT 4
- Test failure: Factory_CleanupCycle_DisposesEligibleHandler HOT 6
- System.InvalidOperationException: Collection was modified; enumeration operation may not execute. HOT 7
- An error occurred while writing to logger(s) HOT 3
- HttpClientFactory Causes High CPU? HOT 33
- Test failure: SuppressScope_False_CreatesNewScope HOT 3
- Running Tests Locally Not Working HOT 4
- In the controller, how do I find the specified type client by name HOT 2
- NullReferenceException in ActiveHandlerTrackingEntry with 2.2.0 preview 3 HOT 8
- Remove MessageHandler - Logging Message Handler HOT 5
- Cleanup timer captures logging scopes HOT 3
- Question - HttpMessageHandler access session HOT 2
- Is it possible for HttpClientFactory to target .NET Standard? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from httpclientfactory.