2012-12-06 54 views
8

içine sert kodlu değerler geçirmek: Ne ne işim IAuctionContext bulunduğunda, bu yeni AuctionContext ile değiştirin söylüyorBasit Enjektör ben aşağıdakileri yapabilirsiniz <a href="https://simpleinjector.org" rel="noreferrer">Simple Injector</a> yılında yapıcı

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

. Sorun şu ki, RegisterSingle numaralı çağrı ile, sadece tek bir AuctionContext örneği kullanılacaktır. Yukarıdaki gibi bir Uri parametresini geçirebilmek için istediğim, ancak tek örneğe sahip olmamak ancak her defasında yeni bir örneğe izin vermek istiyorum.

Bu nasıl olabilir?

+0

Sorunuzu düzenledim ve http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts adresinden imzanı kaldırdım. Lütfen imzaları kullanmaktan kaçının. =) –

+0

Bir dahaki sefere bunu aklımda tutacağım, teşekkürler. –

cevap

18

Enjekte etmeye çalıştığınız değer, basit bir kodlanmış değerdir.

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

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

Register yöntem yeni bir örneği her döndürülür sağlamaktadır: sert-kodlu değerleri ve konfigürasyon değerleri gibi sabit değerleri için, sadece Register yöntemi kullanılır.

Başvuru sırasında değişiklik gösterebilecek değerler enjekte olduğunda, lütfen this article about injecting runtime data'u okuyun.

İlgili konular