WinRT中的应用程序间通信

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

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

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

强调测试 ,你不能发送这样的应用程序。 您的身份validation服务器需要在另一台机器上运行 考虑到它在同一台机器上运行时会受到损害的可能性,这非常重要。

没有完整的图片,在一个以UI为中心的应用程序模型(如WinRT)中运行身份validation服务器似乎是一个相当奇怪的设计决策。 它不能被认为是基于“云”的服务吗? 无论如何,我更愿意,不必在每个设备上分发该服务器的代码。

话虽如此,看看自定义股份合约解决方案 。 您基本上应该能够将身份validation请求作为DataRequest发送,并让“服务器”使用DataResponse进行响应。

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

  • 共享内容源应用示例
  • 共享内容目标应用示例

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

基本上来自本文: 在后台传输数据(使用C#/ VB / C ++和XAML的Windowsapp store应用)

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

我不确定它是否已被回答,但我发现使用LaunchFileAsync可以做到这一点。 示例如下://启动app 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中提及。