在ServiceStack Funq使用(Funq usage in ServiceStack)

2019-07-29 16:07发布

  • 如何访问Container实例了控制器的?
  • 我不得不使用Container.Resolve在我的课,但我怎么能访问Container实例?
  • 是不是单身?
  • 我可以使用new Container()或者是有像任何链Funq.StaticContainer

由于Mythz 为要旨暗示 ,a)或b)或c)。

我将使用Mythz的解决方案,它是由我接受,但也有人担心它的模式( ServiceLocator模式),你可以在这里获得额外的信息 。

Answer 1:

有一对夫妇的方式来静态引用您APPHOST实例。 您可以通过解析的依赖IAppHost实例与:

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

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

ServiceStackHost.Instance.Container

虽然服务,Razor视图页面,等你可以使用里面:

base.TryResolve<T>();


文章来源: Funq usage in ServiceStack