C#主项目和子项目引用

mat*_*con 3 c# dependencies projects reference

使用Visual Studio 2008:

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

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

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

Fre*_*örk 8

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


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

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

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