【问题标题】:bidirectional comunication between projects in the same solution同一解决方案中项目之间的双向通信
【发布时间】:2016-02-23 10:05:48
【问题描述】:

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

编辑

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

  • 我创建了一个SharedProject,其中包含一个 C# 类,例如:

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

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

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

  • 1234563 /p>

【问题讨论】:

  • 创建共享项目,定义要与两个项目共享的通用接口。这些接口的实现将驻留在每个项目中。
  • stackoverflow.com/questions/14048235/…。参考链接,有同样的问题。您可能应该使用事件在这两个部分之间进行通信,而不是通过项目引用访问它们
  • @Sriram Sakthivel 我不确定我是否理解你的想法,但认为它就像我编辑的帖子中的内容,请你再提供一个“步骤”
  • 是的,您的方法是正确的。您只需要将特定类型的实例提供给另一个项目即可使用。也就是说,我不确定 UWP 和 WinRt 能否齐头并进。但它适用于一般情况。

标签: c# visual-studio windows-runtime win-universal-app


【解决方案1】:

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

更新:

确保您的课程是公开的,并且您的 void 也是公开的, 然后将 UWP/WinRT 应用程序中的引用添加到您的共享项目中,然后您可以调用它,不要忘记创建您的类的实例,即(

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

)

【讨论】:

    猜你喜欢
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多