2014-01-06 48 views
0

我有下一個代碼:共享魅力設置數據

理論上,這應該創建一個附加文件的電子郵件。但我得到的錯誤:

錯誤:

類型的異常「System.Exception的」發生在APP.EXE但在用戶代碼中沒有處理 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

試試這個代碼共享的文件。

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

+0

問題是,somewhy,Windows 8設備上我無法實現的附加檔案,填寫電子郵件內容。但在8.1所有工作正常 – Cheese

+0

這一切都取決於郵件應用程序。 Win8的郵件應用程序是愚蠢的,它不會一次做所有的事情,但幸運的是Win8.1的郵件應用程序是智能的。查看:[如何在附件中設置郵件中的主題和郵件部分,同時共享魅力使用?](http://social.msdn.microsoft.com/Forums/en-US/3478925a-0945-4037-9bbf-4fc7ef6595c5/如何到組,主題和消息部分中的電子郵件與 - 附件 - 同時,共享魅力,用途區內─?論壇= winappswithcsharp) – Xyroid

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(); }