共享魅力集数据

时间:2014-01-06 07:47:22

标签: c# windows-8 windows-runtime windows-8.1 sharing

我有下一个代码:

理论上,这应该创建一个附加文件的电子邮件。但我得到错误:

错误:

App.exe中出现“System.Exception”类型的异常,但未在用户代码中处理 WinRT信息:无法从传入的对象创建StorageItems。 附加信息:类型不匹配。 无法从传入的对象创建StorageItems。 如果存在此异常的处理程序,则可以安全地继续该程序。

代码:

internal async void OnDataReq(DataProviderRequest request)
    {
        var defferal = request.GetDeferral();
        var file = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("SCLogFile.txt");
        request.SetData(RandomAccessStreamReference.CreateFromFile(file));
        defferal.Complete();
    }
    private async void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs e)
    {
        e.Request.Data.Properties.Title = "THIS IS A TITLE";
        e.Request.Data.Properties.Description = "THIS IS A DESCRIPTION";
        e.Request.Data.Properties.FileTypes.Add(".txt");
        e.Request.Data.SetDataProvider(StandardDataFormats.StorageItems, OnDataReq);
    }

2 个答案:

答案 0 :(得分:0)

尝试使用此代码共享文件。

private async void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs e)
{
    e.Request.Data.Properties.Title = "THIS IS A TITLE";
    e.Request.Data.Properties.Description = "THIS IS A DESCRIPTION";
    e.Request.Data.Properties.FileTypes.Add(".txt");
    var file = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("SCLogFile.txt");
    e.Request.Data.SetStorageItems(file);
}

MSDN sample

答案 1 :(得分:0)

我遇到了同样的问题,问题是数据请求期待IEnumerable<StorageItems>并且您正在发送流。

我改变了你的功能。这对我有用

internal async void OnDataReq(DataProviderRequest request) { var defferal = request.GetDeferral(); var file = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("SCLogFile.txt"); request.SetData(new[] {file}); defferal.Complete(); }