Autofac到Common Service Locator(TypedParameter问题)

时间:2011-06-14 15:42:39

标签: autofac common-service-locator

如何从Autofac修改以下内容以使用公共服务定位器(其中_context的类型为IComponentContext):

var query = _context.Resolve<IContentQuery>(TypedParameter.From<IContentManager>(this));

上面的代码取自Orchard,我正在尝试删除对Autofac的依赖。通常我会尝试类似的事情:

var query = ServiceLocator.Current.GetInstance<IContentQuery>();

然而,这会返回null,我无法看到如何处理TypedParameter的东西,因为我不明白它在做什么。

如果有人可以提供帮助,我真的很感激。感谢

1 个答案:

答案 0 :(得分:3)

TypedParameter为要解析的组件的构造函数提供附加值。在这种情况下,基础ContextQuery将接受IContentManager类型的参数,并传递值this

Common Service Locator不支持参数化,因此您可能需要使用底层IoC容器的特定功能。

希望这会有所帮助。 尼克