查看页面dependencyresolver

时间:2012-09-14 08:43:48

标签: dependency-injection asp.net-mvc-4 unity-container service-locator viewpage

我在Unity中使用MVC4和DependencyResolver。就像在Brad Wilson的博客页面http://bradwilson.typepad.com/blog/2010/07/service-location-pt3-views.html中一样,我想对我的观点使用依赖注入。但似乎MVC4视图引擎不会尝试通过DependencyResolver创建视图页面类。是吗,或者我做错了什么? 这是我的代码:

public static void Register() {
        var unity = new UnityContainer();
        unity.RegisterType<SpaceProject.Models.SpaceShipEntities>(new RequestLifetimeManager());
        DependencyResolver.SetResolver(new UnityDependencyResolver(unity));

}

public abstract class SharedView : WebViewPage
{
    [Dependency]
    public SpaceProject.Models.SpaceShipEntities Context { set; get; }
}

和我的_Layout.cshtml:

@inherits SharedView
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
<head></head>
    <body>
    @foreach (var menu in Context.Menu) { 
                            <li>
                                <a href="#">@menu.Title</a> |
                            </li>    
                        }
    </body>
    </html>

我有一个错误,即Context为null。

1 个答案:

答案 0 :(得分:0)

@inherits SharedView在_Layout.cshtml中不起作用,我认为因为它不像Master Page那样被查看和使用。在视图和部分视图中,所有工作都很完美。