具有继承类库的Unity存储库

时间:2016-01-25 05:14:08

标签: c# .net asp.net-mvc repository unity-container

我的项目分别有两个类库和一个Web客户端:A,B和客户端

enter image description here

当我调用Save()方法时显示错误。

new B().Save("Input");

注意:如何在此类库中使用Unity。

客户端调用库方法确认()和库A调用库B方法保存() 库B方法将数据保存在数据库

现在我想在库B中使用Unity存储库容器,但是如何? This文章帮助我了解如何将存储库与控制台应用程序一起使用,但未能将其应用于我的情况。

1 个答案:

答案 0 :(得分:0)

最佳做法是在应用程序的顶层注册依赖注入,例如mvc / webapi应用程序。类库中的任何显式解析都会破坏依赖注入链,从而隐藏依赖关系。如果您需要在类库中直接使用容器,则可能需要重新设计解决方案。

public class MyApiController : ApiController
{
    public MyApiController(IService service)
    { 
        //clearly MyApiController depends on IService
    }
}

public class MyService : IService
{
    public MyService(IUnityContainer container)
    {
        this.Dependency1 = container.Resolve<Dependency1>();
        //using container directly breaks the dependency chain
        //because I can resolve everything here
        //makes MyService hard to be injected and unit tested 
    }
}
相关问题