我们有许多项目的解决方案。
在一个特定的情况下,我们有两个项目: 1)完成大部分工作的C#项目2) C++/CLI项目,充当一些本地C++代码的中间人。
C#代码调用C++包装器,一切都很好。
然而,我们正在引入一些新的功能。在C++包装器(项目2)的托管端,它需要项目1中托管C#代码中的一些静态方法。但是,Visual不允许我们相互关联这两个项目,因为它抱怨循环项目引用。但是,没有循环类引用。
是否有任何解决这个问题的解决方案不需要第三个项目作为中介?
发布于 2011-05-12 19:30:56
为了简单起见,我们可以让A依赖B。简单地说,A.EXE依赖于B.DLL。然后当A最初调用B时,它可以给它一个定义在B中的某种类型或接口的对象,然后B可以在以后的某个时候回过头来调用A。
换句话说,B定义了一个基类或接口,比如“我想要只有A才能做的事情”,但不要实现它。然后让A实现它,把它传递给你,然后调用它。这可以绕过循环依赖关系,而不需要第三个项目。这适用于任何一对托管项目。
https://stackoverflow.com/questions/5983291
复制相似问题