C#从类库中的类访问WinForms项目中的类

时间:2012-12-24 16:38:50

标签: c#-4.0

我在解决方案中有两个c#项目。

第一个项目是一个包含多个类的winforms项目,名为QuantumGUI。第二个项目是一个包含多个类的class library项目,名为QuantumDAL

我的目标来自QuantumDAL中的一个类来访问和设置QuantumGUI类或Form.cs中的变量。 我尝试在QuantumDAL项目中添加对QuantumGUI的引用,但收到以下错误:“A Reference to ‘QuantumGUI’ could not be added. Adding the project as a reference would cause a circular dependency”.
  我收到类似的错误消息,试图添加项目依赖项。当你考虑它时,错误信息是有道理的。 我已经尝试了其他的,我认为可行的方法可以做到这一点但是空洞了。我相信必须有一种聪明的方法来完成这项工作 如果我以错误的方式解决这个问题,有没有办法让两个项目中的代码都可以访问“全局”类? 感谢您抽出宝贵时间来研究这个问题。

1 个答案:

答案 0 :(得分:0)

您尝试做的事情有两个问题:

首先,当IDE警告您时,您将要创建一个循环依赖项。这意味着编译器需要在构建项目B之前构建项目A,但是它需要在构建项目A之前构建项目B.这两个项目都不能“先”。

第二个问题是您的WinForms项目很可能是可执行文件,并且您无法通过IDE添加对*.exe文件的引用。你可以通过命令行添加这些引用,但是Visual Studio试图阻止你这样做的事实应该是一个红旗,这是一个非常糟糕的主意。

执行所需操作的正确方法是将公共类重构为从其他项目引用的第三个类库。如果需要,您可以连接事件(特别是查看INotifyPropertyChanged接口及其事件),以便在事情发生变化时通知感兴趣的观察者对象。