Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 依赖注入和解决方案中的多个项目_C#_.net_Entity Framework_Repository_Unit Of Work - Fatal编程技术网

C# 依赖注入和解决方案中的多个项目

C# 依赖注入和解决方案中的多个项目,c#,.net,entity-framework,repository,unit-of-work,C#,.net,Entity Framework,Repository,Unit Of Work,我一直在关注关于使用存储库模式和UnitOfWork with entity框架的文章。我还计划使用Ninject作为即将到来的项目的IOC容器 给出了本文中的示例代码,NorthwindData项目中的NorthwindContext类实现了位于NorthwindModel项目内部的IUnitOfWork接口 如何利用依赖注入消除NorthwindModel对NorthwindData的依赖?示例项目中的存储库类看起来似乎依赖于IOC容器来注入NorthindContext的实例,我理解这一点

我一直在关注关于使用存储库模式和UnitOfWork with entity框架的文章。我还计划使用Ninject作为即将到来的项目的IOC容器

给出了本文中的示例代码,NorthwindData项目中的NorthwindContext类实现了位于NorthwindModel项目内部的IUnitOfWork接口

如何利用依赖注入消除NorthwindModel对NorthwindData的依赖?示例项目中的存储库类看起来似乎依赖于IOC容器来注入NorthindContext的实例,我理解这一点

此外,我还需要在解决方案中创建第三个项目来容纳DI。有关于如何设置的示例吗

编辑:

我想我上面的问题来自一个更一般的问题


让这两个项目依赖于从NWData到NWModel的程序集引用是否不好??我的假设是DI将消除这种需要。

要打破从NorthwindModel到NorthwindData的依赖关系,请查看存储库从NorthwindContext需要什么。将其拉入接口IDataContext,在NorthwindModel项目中声明,并让NorthwindContext实现它。现在使用DI将NorthwindContext注入到现在只依赖IDataContext的存储库中


关于可能的第三个项目:是的,让应用程序根项目只负责启动时的设置是一个好主意。但这取决于范围

要打破从NorthwindModel到NorthwindData的依赖关系,请查看存储库需要从NorthwindContext获得什么。将其拉入接口IDataContext,在NorthwindModel项目中声明,并让NorthwindContext实现它。现在使用DI将NorthwindContext注入到现在只依赖IDataContext的存储库中


关于可能的第三个项目:是的,让应用程序根项目只负责启动时的设置是一个好主意。但这取决于范围

我不确定这是否真的对我有帮助……或者我问错了问题。如果NorthwindData有一个实现NorthwindModel接口的类,我仍然需要添加一个从NWData到NWModel的程序集引用,以获得要构建的项目…这是我认为我需要避免的…也许我错了???@stephen:让NWData依赖于NWModel没关系。您想要避免的是让您的表示层依赖于NWData,因为它应该是两个“层”,并且您只希望每个项目与它们相邻的层接触。这是否会限制我单独测试每个项目的能力?或者将NWData交换到另一个实现NWModelAh中接口的项目中,我想你的问题正好相反。我认为,让NWData依赖于NWModel是可以的,因为该模型被视为应用程序的核心,数据访问是外围的。这遵循Hexogonal架构样式。项目中的NWModel/NWData只是我的示例。我正在寻求更一般的建议。一个包含多个项目的解决方案,并设置DI以促进TDD和灵活性。我不确定这是否真的对我有帮助……或者我问错了问题。如果NorthwindData有一个实现NorthwindModel接口的类,我仍然需要添加一个从NWData到NWModel的程序集引用,以获得要构建的项目…这是我认为我需要避免的…也许我错了???@stephen:让NWData依赖于NWModel没关系。您想要避免的是让您的表示层依赖于NWData,因为它应该是两个“层”,并且您只希望每个项目与它们相邻的层接触。这是否会限制我单独测试每个项目的能力?或者将NWData交换到另一个实现NWModelAh中接口的项目中,我想你的问题正好相反。我认为,让NWData依赖于NWModel是可以的,因为该模型被视为应用程序的核心,数据访问是外围的。这遵循Hexogonal架构样式。项目中的NWModel/NWData只是我的示例。我正在寻求更一般的建议。具有多个项目的解决方案,并设置DI以促进TDD和灵活性。