Estoy intentando insertar una dependencia en la página de vista de diseño compartido para evitar tener que hacerlo en cada vista que usa el diseño.¿Puede Autofac inyectar dependencias en archivos de vista de diseño?
He seguido el guidance en la wiki para inyectar dependencias en vistas, pero la propiedad siempre es nula.
¿Puede Autofac inyectar propiedades en una página de vista personalizada que es un archivo de diseño?
Aquí está mi configuración. CustomViewPage
namespace MyApp
{
using System.Web.Mvc;
public abstract class CustomViewPage : WebViewPage
{
public IHelper Helper { get; set; }
}
}
~/views/Común/_Layout.cshtml
@inherits MyApp.CustomViewPage
<!DOCTYPE html>
<html>
...
@if(this.Helper.HasFoo()){@Html.ActionLink("Bar")}
Registro Global ...
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));
Los puntos de vista "niños" que utilizan el diseño no se derivan de la página CustomViewPage.
Parece que este es un [problema conocido] (http://code.google.com/p/autofac/issues/detail?id=349) de Autofac ... – nemesv
Sí, el problema está aquí, http: // code .google.com/p/autofac/issues/detail? id = 349 – GraemeMiller
Esta respuesta funcionó para mí como una solución: http://stackoverflow.com/a/14935006/789683 – flipchart