asp.net-mvc - 如何使用 Sitecore MVC 设置 Ioc (Autofac)

标签 asp.net-mvc sitecore autofac sitecore8

有人知道如何设置正确的 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/

相关文章:

c# - Ajax.BeginForm 绝对 url MVC CORS

c# - ASP Net MVC - 验证消息的本地化

c# - 检查用户名是否存在于 Microsoft Azure Active Directory 中

xpath - 如何按第一个版本创建日期查询Sitecore项目?

c# - 如何使用 Autofac 注入(inject) AutoMapper?

.net - Autofac 和 IDisposable 接口(interface)

c# - 将 Html.DropDownList 助手与 ViewBag 列表一起使用

c# - 如何从 glassmapper 映射的对象属性中获取 sitecore 字段?

dns - 一个域上托管多个 Sitecore 实例

entity-framework - 从 AutoFac 解析 IDbSet<T>