Sto provando a iniettare una dipendenza nella pagina di visualizzazione del layout condiviso per evitare di doverlo fare in ogni vista che utilizza il layout.Can Autofac può iniettare dipendenze nei file di visualizzazione del layout?
Ho seguito lo guidance nella wiki per iniettare dipendenze in viste, ma la proprietà è sempre nullo.
Can Autofac può iniettare proprietà in una pagina di visualizzazione personalizzata che è un file di layout?
Ecco il mio setup. CustomViewPage
namespace MyApp
{
using System.Web.Mvc;
public abstract class CustomViewPage : WebViewPage
{
public IHelper Helper { get; set; }
}
}
~/Vista/shared/_Layout.cshtml
@inherits MyApp.CustomViewPage
<!DOCTYPE html>
<html>
...
@if(this.Helper.HasFoo()){@Html.ActionLink("Bar")}
registrazione globale ...
builder.RegisterType<Helper>().AsImplementedInterfaces();
builder.RegisterModelBinderProvider();
builder.RegisterFilterProvider();
builder.RegisterModule(new AutofacWebTypesModule());
builder.RegisterSource(new ViewRegistrationSource());
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
I punti di vista "bambini" che utilizzano il layout non derivano da la CustomViewPage.
Sembra che questo sia un [problema noto] (http://code.google.com/p/autofac/issues/detail?id=349) di Autofac ... – nemesv
Sì, il problema è qui http: // code .google.com/p/autofac/issues/detail? id = 349 – GraemeMiller
Questa risposta ha funzionato per me come soluzione temporanea: http://stackoverflow.com/a/14935006/789683 – flipchart