同一解决方案中的项目之间的双向通信

本文关键字:项目 双向通信 之间 解决方案 | 更新日期: 2023-09-27 18:35:52

我是Windows编程的新手,我需要在一个解决方案中进行2个项目(UWP和WinRT)之间的通信。我正在将 WinRT 的引用添加到我的 UWP 中,现在我可以在 UWP 中从 WinRT 调用方法,但我需要这样做,反之亦然,从 WinRT 中的 UWP 调用,但是如果我尝试添加参考 Visual Studio 显示一个错误对话框:Adding this project as reference would cause a circular dependecy这是安静的逻辑。那么有没有办法让我的双向通信成为可能呢?

编辑

我正在尝试提出的解决方案:

  • 我创建了一个包含 C# 类的SharedProject,如下所示:

    namespace SharedProject { public interface Iuwp { void myMethodInWinRT(); } public interface Iwinrt { void myMethodInUWP(); } }

  • 我添加了对两个项目的共享项目引用:WinRT 和 UWP;

  • 我在 WinRT 项目中实现了myMethodInWinRT(),在 UWP 项目中实现了myMethodInUWP();

  • 正如这里所说的那样,我想从 UWP 项目调用myMethodInWinRT(),从 WinRT 项目调用myMethodInUWP(),但我卡住了,我应该如何使用该接口来调用其中的方法?

同一解决方案中的项目之间的双向通信

您不能将一个 Windows App 项目引用到另一个项目,相反,我建议创建一个 WinRT Component 项目或 shared PCL 项目,并将您的代码和接口共享为@Sriram,以便您可以调用函数,将其与两个项目一起初始化。

更新:

确保你的课程是公开的,你的空洞也是公开的,然后将来自 UWP/WinRT 应用的引用添加到共享项目,然后可以调用它,不要忘记创建类的实例,即(

MyClass class = new MyClass();
class.MyUWPVoid();