有人知道如何设置正确的 IoC (Autofac) 并将其与 Sitecore MVC 一起使用吗? 我已经创建了一个特定的管道,但它似乎在 sitecore 渲染页面( Controller 渲染)时解析不起作用。
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<pipelines>
<initialize>
<processor type="MyLib.AutofacProcessor, MyLib" />
</initialize>
</pipelines>
</sitecore>
</configuration>
<小时/>
public class AutofacProcessor
{
public void Process(PipelineArgs args)
{
AutofacProcessor.Start();
}
public static void Start()
{
var builder = new ContainerBuilder();
builder.RegisterType<MyService>().As<IMyService>().PropertiesAutowired();
var container = builder.Build();
IDependencyResolver resolver = new AutofacDependencyResolver(container);
DependencyResolver.SetResolver(resolver);
}
}
但是当 sitecore 调用它时,我在 Controller 中的属性为空。 如何在 Sitecore 术语中注册?在常规 ASP MVC 中,这非常简单。
最佳答案
您还需要覆盖 Sitecore 的默认 ControllerFactory。
<processor type="Sitecore.Mvc.Pipelines.Loader.InitializeControllerFactory, Sitecore.Mvc"/>
这是 NInject 的一个示例,应该可以轻松修改它以使用 AutoFAC 执行相同的操作:http://blog.istern.dk/2012/10/23/sitecore-mvc-new-ninject-controller-factory-clean-version/
关于asp.net-mvc - 如何使用 Sitecore MVC 设置 Ioc (Autofac),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31989627/