In Simple Injector I can do the following:
container.RegisterSingle<IAuctionContext>(() => new AuctionContext(
new Uri("http://localhost:60001/AuctionDataService.svc/")));
What I am doing here is saying that when IAuctionContext
is found, replace it with this new AuctionContext
. The problem is that with the call to RegisterSingle
, only a single instance of AuctionContext
will be used. What I'd like it to be able to pass in a Uri
parameter as above but not have the single instance but allow a new instance each time.
How is this possible?
The value you are trying to inject is a simple hard-coded value. For constant values like hard-coded values and configuration values, just use the Register
method:
var uri = new Uri("http://localhost:60001/AuctionDataService.svc/");
container.Register<IAuctionContext>(() => new AuctionContext(uri));
The Register
method ensures a new instance is returned each time.
When it comes to injecting values that could change during the course of the application, please read this article about injecting runtime data.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With