Может ли Autofac внедрять зависимости в файлы представления макета?

Я пытаюсь внедрить зависимость на страницу представления общего макета, чтобы избежать необходимости делать это в каждом представлении, использующем макет.

Я следовал руководству в вики по внедрению зависимостей в представления, но свойство всегда имеет значение null.

Может ли Autofac вводить свойства на пользовательскую страницу просмотра, которая является файлом макета?

Вот моя установка. CustomViewPage

namespace MyApp
{
    using System.Web.Mvc;

    public abstract class CustomViewPage : WebViewPage
    {
        public IHelper Helper { get; set; }
    }
}

~/Views/Shared/ _Layout.cshtml

@inherits MyApp.CustomViewPage


...
@if(this.Helper.HasFoo()){@Html.ActionLink("Bar")}

Глобальная регистрация...

builder.RegisterType().AsImplementedInterfaces();
builder.RegisterModelBinderProvider();
builder.RegisterFilterProvider();
builder.RegisterModule(new AutofacWebTypesModule());
builder.RegisterSource(new ViewRegistrationSource());
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

«Дочерние» представления, использующие макет, НЕ являются производными от CustomViewPage.

13
задан Josh 21 July 2012 в 15:46
поделиться