Windows 8 上有两个 WinRT 应用程序(C#/Xaml,如果重要的话)。第一个应用程序应该接收一些数据并将其发送到第二个应用程序。最好的方法是什么?可以使用 WCF 吗?
编辑:第一个应用程序知道第二个。实际上第二个应用程序是一个身份验证服务器,它只提供一种获取令牌的方法。
Windows 8 上有两个 WinRT 应用程序(C#/Xaml,如果重要的话)。第一个应用程序应该接收一些数据并将其发送到第二个应用程序。最好的方法是什么?可以使用 WCF 吗?
编辑:第一个应用程序知道第二个。实际上第二个应用程序是一个身份验证服务器,它只提供一种获取令牌的方法。
不可能,这需要环回支持。你只能打开测试的东西,你不能在你的用户机器上依赖它。CheckNetIsolation.exe 实用程序可用于启用它,MSDN 文章在这里。
只强调测试,你不能发布这样的应用程序。您的身份验证服务器需要在另一台机器上运行。无论如何,考虑到它在同一台机器上运行时会受到影响的可能性,这非常重要。
没有全貌,让身份验证服务器在以 UI 为中心的应用程序模型(如 WinRT)中运行似乎是一个相当奇怪的设计决定。它不能被认为是基于“云”的服务吗?无论如何,我宁愿这样,不必在每台设备上分发该服务器的代码。
话虽如此,请看一个自定义共享合同解决方案。您基本上应该能够将身份验证请求作为DataRequest发送,并让“服务器”以 DataResponse 响应。
code.msdn.com 上有两个示例应用程序:
我不确定它是否已被回答,但我发现使用 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 中提及。
我偶然发现的一件事是:Windows.Networking.BackgroundTransfer
基本上来自这篇文章:Transferring data in the background (Windows Store apps using C#/VB/C++ and XAML)
但我实际上并没有通过后台任务的洞文章和概念。也许有人可以对此发表评论?