2012-05-31 20 views
5
  • Container örneğinin denetleyici dışında nasıl erişebilirim?
  • Sınıfımda Container.Resolve kullanmam gerekiyor ama Container örneğine nasıl erişebilirim?
  • Tek kişilik mi?
  • new Container() kullanabilir miyim veya Funq.StaticContainer gibi herhangi bir zincir var mı? Mythz for gist hint, a) veya b) veya c) 'ye teşekkürler.

ServiceStack içinde funq kullanımı

Mythz'nin çözümünü kullanacağım, bu benim tarafımdan kabul görüyor, ancak modelin (ServiceLocator Desen) için endişeleri var, check here for extra info.

+0

http://stackoverflow.com/questions/3139209/does-funq-ioc-container-support-property-injection Yaklaşım benim için uygun. – ozz

cevap

7

AppHost örneğinize statik olarak başvurmanın birkaç yolu vardır. Sen ile IAppHost örneği üzerinden bir bağımlılık çözebilirsiniz:

HostContext.TryResolve<T>(); 
HostContext.Resolve<T>(); 
HostContext.AppHost.TryResolve<T>(); 

Eğer siz tekil üzerinden erişebilirsiniz, beton Funq.Container erişmesi gereken nedense: Bir Hizmet içi iken

ServiceStackHost.Instance.Container 

, jilet Görünüm Sayfası, vb kullanabilirsiniz:

base.TryResolve<T>(); 
+0

IAppHost üzerinde Resolve yöntemi yok I TryResolve kullanıldı (IResolver'dan gelir) – ozz

+0

Teşekkür ederiz yanıtı. Resolve bir ResolutionException fırlatacağı yerde eksik bağımlılıklar için TryResolve null değerini döndürür – mythz