我有下一个代码:
理论上,这应该创建一个附加文件的电子邮件。但我得到错误:
错误:
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);
}
答案 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);
}
答案 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();
}