2012-12-06 33 views
8

Simple Injector我可以做到以下几点:简单的喷油器通过硬编码值到构造

container.RegisterSingle<IAuctionContext>(() => new AuctionContext(
    new Uri("http://localhost:60001/AuctionDataService.svc/"))); 

我在做什么这里说,当发现IAuctionContext,这一新的AuctionContext更换。问题是,调用RegisterSingle时,将只使用一个AuctionContext的实例。我希望它能够通过上述Uri参数,但没有单个实例但每次都允许一个新实例。

这怎么可能?

+0

我已经编辑你的问题,删除每http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts您的签名。请不要使用签名。 =) –

+0

下次我会记住这一点,谢谢。 –

回答

18

你试图注入的值是一个简单的硬编码值。对于像硬编码值和配置值的恒定值,只需使用方法Register

var uri = new Uri("http://localhost:60001/AuctionDataService.svc/"); 

container.Register<IAuctionContext>(() => new AuctionContext(uri)); 

Register方法确保每次一个新实例被返回。

当涉及到注射,可以应用的过程中更改数值,请阅读this article about injecting runtime data

相关问题