- 如何
Container
从控制器访问实例? - 我必须
Container.Resolve
在我的课堂上使用,但我怎样才能访问Container
实例? - 是单例吗?
- 我可以使用
new Container()
还是有类似的链条Funq.StaticContainer
?
感谢 Mythz的要点提示,a) 或 b) 或 c)。
我将使用 Mythz 的解决方案,它被我接受,但它的模式 ( ServiceLocator
Pattern) 存在问题,您可以在此处查看更多信息。
有几种方法可以静态引用您的 AppHost 实例。您可以通过IAppHost实例解决依赖关系:
HostContext.TryResolve<T>();
HostContext.Resolve<T>();
HostContext.AppHost.TryResolve<T>();
如果由于某种原因您需要访问具体的Funq.Container
,您可以通过单例访问它:
ServiceStackHost.Instance.Container
在服务、Razor 视图页面等中,您可以使用:
base.TryResolve<T>();