7
  • 如何Container从控制器访问实例?
  • 我必须Container.Resolve在我的课堂上使用,但我怎样才能访问Container实例?
  • 是单例吗?
  • 我可以使用new Container()还是有类似的链条Funq.StaticContainer

感谢 Mythz的要点提示,a) 或 b) 或 c)。

我将使用 Mythz 的解决方案,它被我接受,但它的模式 ( ServiceLocatorPattern) 存在问题,您可以在此处查看更多信息

4

1 回答 1

9

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

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

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

ServiceStackHost.Instance.Container

在服务、Razor 视图页面等中,您可以使用:

base.TryResolve<T>();
于 2012-05-31T19:48:20.463 回答