我在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。
答案 0 :(得分:0)
@inherits SharedView在_Layout.cshtml中不起作用,我认为因为它不像Master Page那样被查看和使用。在视图和部分视图中,所有工作都很完美。