【发布时间】: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