ServiceStack中的Funq用法

时间:2012-05-31 16:19:03

标签: dependency-injection servicestack funq

  • 如何从控制器中访问Container实例?
  • 我必须在班级中使用Container.Resolve,但如何访问Container个实例?
  • 是单身吗?
  • 我可以使用new Container()还是有Funq.StaticContainer
  • 这样的链条

感谢Mythz for gist hint,a)或b)或c)。

我将使用Mythz的解决方案,它被我接受,但有关于它的模式(ServiceLocator模式)的问题,你可以check here for extra info

1 个答案:

答案 0 :(得分:7)

有几种方法可以静态引用AppHost实例。您可以通过IAppHost实例解决依赖关系:

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

如果由于某种原因你需要访问具体的Funq.Container,你可以通过单身人士访问它:

ServiceStackHost.Instance.Container

在服务,Razor View页面等中,您可以使用:

base.TryResolve<T>();