In 简易注射器 https://simpleinjector.org我可以执行以下操作:
container.RegisterSingle<IAuctionContext>(() => new AuctionContext(
new Uri("http://localhost:60001/AuctionDataService.svc/")));
我在这里所做的是说当IAuctionContext
找到了,用这个新的替换它AuctionContext
。问题是,通过调用RegisterSingle
,只有一个实例AuctionContext
将会被使用。我希望它能够传递什么Uri
参数如上,但没有单个实例,但每次允许一个新实例。
这怎么可能?
您尝试注入的值是一个简单的硬编码值。对于硬编码值和配置值等常量值,只需使用Register
method:
var uri = new Uri("http://localhost:60001/AuctionDataService.svc/");
container.Register<IAuctionContext>(() => new AuctionContext(uri));
The Register
方法确保每次返回一个新实例。
当涉及注入在应用程序过程中可能发生变化的值时,请阅读这篇关于注入运行时数据的文章 https://cuttingedge.it/blogs/steven/pivot/entry.php?id=99.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)