我知道 autofac 的最佳实践是尽可能使用构造函数注入,而 orchard 也这样做了。使用全局容器不是一个好主意,但我只想知道有没有办法在果园中使用 container.Resolve<> 或者如何在果园中获取组件?
是的,我知道在果园中我们可以使用 IDependency,但是在 Web 服务、视图等中时……我怎样才能获得容器之类的组件。解决我可以在哪里获得容器的问题。
我知道 autofac 的最佳实践是尽可能使用构造函数注入,而 orchard 也这样做了。使用全局容器不是一个好主意,但我只想知道有没有办法在果园中使用 container.Resolve<> 或者如何在果园中获取组件?
是的,我知道在果园中我们可以使用 IDependency,但是在 Web 服务、视图等中时……我怎样才能获得容器之类的组件。解决我可以在哪里获得容器的问题。
在视图中,您有WorkContext
一个Resolve
方法。
var contentDefinitionManager = WorkContext.Resolve<IContentDefinitionManager>();
我有一个类似的问题,我需要在我的用户部分覆盖 cshtml 中检查权限。
这可能会有所帮助: http: //orchardproject.net/docs/Developer-FAQ.ashx#How_to_build_a_WCF_service_that_exposes_Orchard_functionality_14