Unity不解决依赖关系

时间:2014-03-06 07:58:24

标签: asp.net-mvc dependency-injection unity-container

我将Unity与Unity.MVC5一起使用。注册类型和依赖项解析程序的类如下:

public static class UnityConfig
{
    public static void RegisterComponents()
    {
        var container = new UnityContainer();

        container
            .RegisterType<ILogger, Nlogger>()
            .RegisterType<IDataAccessLayer, SqlDataAccessLayer>()
            .RegisterType<IEventBusiness, EventBusiness>();

        DependencyResolver.SetResolver(new UnityDependencyResolver(container));

    }
}

这是我的Global.asax代码:

void Application_Start(object sender, EventArgs e)
{
    UnityConfig.RegisterComponents();
    GlobalConfiguration.Configure(WebApiConfig.Register);
    RouteConfig.RegisterRoutes(RouteTable.Routes);  
}

在我的一个控制器中,我有一个这样的属性:

[Dependency]
public IEventBusiness EventBusiness { get; set; }

我希望Unity自动设置此属性,但它始终为null。有人可以帮我弄清楚我做错了吗?

1 个答案:

答案 0 :(得分:5)

感谢您的帮助。我删除了Unity.MVC5并安装了Unity plus Unity.Bootstrapper。现在一切正常。我按照这篇文章解决了这个问题:http://msdn.microsoft.com/en-us/library/dn178463(v=pandp.30).aspx