使用循环引用

时间:2016-04-01 12:42:20

标签: c# vb.net circular-reference

我想在Project 2(c #Windows Form)中使用Project 1(VB.NET)的一些代码,反之亦然。我知道我们不能创建循环引用,但还有其他方法可以实现吗?

1 个答案:

答案 0 :(得分:1)

首先,循环引用意味着错误的设计。如果你需要这样的东西,你必须通过以下方式之一改变你的设计:

<强> 1。提取“循环”代码

通常,使用从两个“循环”库中调用的函数创建另一个库。然后使Project1和Project2依赖于新创建的Project3。

<强> 2。使用回调

只使一个lib依赖于第二个 - 没有代码中的任何示例,很难确定哪一个应该依赖于其他,但是从“Windows Form”我会假设,如果Project2依赖它会更好在Project1上。 所以这意味着,Project2知道Project1的所有内容。然后,如果你需要从Project1调用一些东西回到Project2,只需在初始化期间提供回调。 例如。 Project1包含函数,它会进行一些长时间的计算,并且您希望在完成后收到通知。好的,没问题。 Project2以回调(搜索委托)开始操作并继续自己的工作。当Project1中的函数完成时,它使用提供的回调来调用Project2中的函数(即使它不知道这个函数,但由于编译器管理,因此无法提供“不兼容”函数作为回调)。< / p>

很难给你更多建议,因为你没有提供任何代码。如果您需要更多帮助,请通过一些简单的示例更新您的问题。