【问题标题】:C# Main project and child project referencesC# 主项目和子项目引用
【发布时间】:2011-03-22 23:32:30
【问题描述】:

使用 Visual Studio 2008:

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

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

这是做我想要完成的事情的正确方法还是有其他方法?

【问题讨论】:

  • 你为什么不在一个项目中拥有一切?

标签: c# dependencies reference projects


【解决方案1】:

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


更新
有几种不同的方法可以处理这种情况,在不了解您的应用程序细节的情况下,我无法给出任何具体的解决方案。但一种方法是使用dependency injection。您可以为这个功能提取一个接口,而不是让 Workbook 项目对 Project1 中的代码有硬性依赖。这个接口放在另一个项目中,Project1和Workbook项目都可以引用。

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

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

【讨论】:

  • +1,是的,创建一个名为“Common”的项目来放置这些共享依赖项。
  • 我明白你不能让两个项目相互引用,这将是一个递归的噩梦。那么我将如何从 Project1 中引用 Excel 工作簿模板项目?因此,不是 Excel 工作簿模板项目依赖于 Project1,而是让 Project1 和 Excel 工作簿项目都依赖于 CommonProject,然后让 Project1 依赖于所有 Excel 工作簿项目?
猜你喜欢
  • 1970-01-01
  • 2011-08-25
  • 2014-01-25
  • 1970-01-01
  • 2012-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多