C#主项目和子项目引用

时间:2010-07-29 21:33:24

标签: c# dependencies reference projects

使用Visual Studio 2008:

在解决方案中有一个主项目(Project1),在同一解决方案中还有其他项目(这些项目是Excel 2007工作簿模板)。这些其他项目需要引用Project1中的类和对象,而Project1需要能够访问Workbook项目。

我现在拥有的是其他项目设置为依赖于Project1,并且引用被添加到Project1的其他项目中。

这是做我想要完成的事情的正确方法还是有另一种方式?

1 个答案:

答案 0 :(得分:8)

您不能让两个项目相互依赖(这完全合乎逻辑;应该首先构建哪个项目?)。您应该将Project1和Workbook项目所需的Project1中的部件移动到一个单独的项目中,Project1和Workbook项目都可以引用它们。


<强>更新
处理这种情况有几种不同的方法,如果不知道应用程序的详细信息,我就无法提供任何具体的解决方案。但一种方法是使用dependency injection。您可以为此功能提取接口,而不是使Workbook项目对Project1中的代码具有硬连线依赖性。此接口位于另一个可由Project1和Workbook项目引用的项目中。

然后我假设Project1将在Workbook项目中创建类型的实例。这意味着您应该更改这些类型的构造函数,以便在此接口类型时具有参数。 Project1将包含一个接口的实现,它将在创建时传递给Workbook项目类型。

这样,Workbook项目代码可以使用Project1中的代码而无需引用它。