2016-04-18 1 views
1

私は現在依存性注入のためにAutofacを使用しています。Autofac ViewRegistrationSourceは_Layout.cshtmlで動作しません

私の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; } 
} 

私は次のように使用しています私は単に

@WebSettings.Version 
を使用しています私の_Layout.cshtmlで私の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)); 

およびオブジェクト参照がオブジェクトのインスタンスに設定されていない

答えて

2

Per the documentation

Due to an issue with ASP.NET MVC internals, dependency injection is not available for Razor layout pages. Razor views will work, but layout pages won’t.