Autofac ViewRegistrationSource不适用于_Layout.cshtml

时间:2016-04-18 23:33:59

标签: asp.net-mvc autofac

我目前正在使用Autofac进行依赖注入。

我无法使用我的BaseViewPage和_Layout.cshtml注入工作。我总是得到以下错误:

object reference not set to an instance of an object

但是,任何其他视图中没有问题,部分或其他。

我的基页看起来像这样:

public abstract class NTouchWebViewPage<TModel> : WebViewPage<TModel> {
    public IWebSettings WebSettings { get; set; }
}

我在Status.cs中使用以下内容

var builder = new ContainerBuilder();
builder.RegisterType<WebSettings>().As<IWebSettings>().SingleInstance();
builder.RegisterSource(new ViewRegistrationSource());
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

在我的_Layout.cshtml中我只是使用

@WebSettings.Version

并且对象引用未设置为对象的实例

任何想法??

1 个答案:

答案 0 :(得分:2)

Per the documentation

  

由于ASP.NET MVC内部问题,Razor布局页面无法使用依赖注入。 Razor视图可以使用,但布局页面不会。