【问题标题】:Inter application communication in WinRTWinRT 中的应用程序间通信
【发布时间】:2012-06-24 19:09:05
【问题描述】:

Windows 8 上有两个 WinRT 应用程序(C#/Xaml,如果重要的话)。第一个应用程序应该接收一些数据并将其发送到第二个应用程序。最好的方法是什么?可以使用 WCF 吗?

编辑:第一个应用程序知道第二个应用程序。实际上第二个应用是一个身份验证服务器,它只提供了一种获取令牌的方法。

【问题讨论】:

  • 你能告诉我们更多关于数据、数量、频率、种类的信息吗?你能告诉我们更多关于这两个应用程序的信息吗,它们是否相互了解?
  • 谢谢,厄诺。我已经更新了问题。
  • 请阅读这个问题:stackoverflow.com/questions/7465517/…(特别是第二个答案:stackoverflow.com/a/7466021/563088)它提供了一些背景知识以及您可能想要更改架构的原因。

标签: c# windows-8 windows-runtime


【解决方案1】:

没有全貌,让身份验证服务器在以 UI 为中心的应用程序模型(如 WinRT)中运行似乎是一个相当奇怪的设计决定。它不能被认为是基于“云”的服务吗?无论如何,我宁愿这样,不必在每台设备上分发该服务器的代码。

话虽如此,看看custom share contracts solution。 您基本上应该能够以DataRequest 的形式发送身份验证请求,并让“服务器”以 DataResponse 响应。

code.msdn.com 上有两个示例应用:

【讨论】:

    【解决方案2】:

    不可能,这需要环回支持。您只能为测试打开的东西,您不能在用户的机器上依赖它。 CheckNetIsolation.exe 实用程序可用于启用它,MSDN 文章is here

    强调仅用于测试,您不能发布这样的应用。您的身份验证服务器需要在另一台机器上运行。无论如何,考虑到它在同一台机器上运行时会受到影响的可能性,这非常重要。

    【讨论】:

      【解决方案3】:

      我偶然发现的一件事是:Windows.Networking.BackgroundTransfer

      基本上来自这篇文章:Transferring data in the background (Windows Store apps using C#/VB/C++ and XAML)

      但我实际上并没有通过后台任务的洞文章和概念。 也许有人可以对此发表评论?

      【讨论】:

        【解决方案4】:

        我不确定它是否已得到答复,但我发现使用 LaunchFileAsync 可以做到这一点。 一个例子如下: //启动应用 var launchFileName = "june.kit";

                    var folder = Windows.Storage.ApplicationData.Current.LocalFolder;
                    var option = Windows.Storage.CreationCollisionOption.ReplaceExisting;
        
                    // create file 
                    var launchFile = await folder.CreateFileAsync(launchFileName, option);
        
                    // write content
                    await Windows.Storage.FileIO.WriteTextAsync(launchFile, tempChk);
        
                    // launch file
                    bool success = await Launcher.LaunchFileAsync(launchFile);
        

        其中 launchFileName 可以有任何名称和任何扩展名,并且此扩展名应在 packager.manifest 文件中调用应用程序的 FileTypeAssociation 中提及。

        【讨论】:

          猜你喜欢
          • 2014-05-12
          • 2011-10-26
          • 2011-07-08
          • 1970-01-01
          • 1970-01-01
          • 2011-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多