アプリで共有契約を使用してファイルを共有しようとしています:-
public async void SendingEmail(UtilityClass objselecteditem)
{
try
{
StorageFolder tempFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFile sampleFile = await
tempFolder.CreateFileAsync("StundentDetails.html",
CreationCollisionOption.ReplaceExisting);
await Windows.Storage.FileIO.WriteTextAsync(sampleFile, htmlBuilder.ToString());
await RegisterForShare();
}
catch (Exception ex)
{
}
}
上記のメソッドでこの RegisterForShare() を呼び出しています:-
private async Task RegisterForShare()
{
DataTransferManager dataTransferManager = DataTransferManager.GetForCurrentView();
dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(this.ShareStorageItemsHandler);
DataTransferManager.ShowShareUI();
}
private async void ShareStorageItemsHandler(DataTransferManager sender, DataRequestedEventArgs e)
{
DataRequest request = e.Request;
request.Data.Properties.Title = "Student Confirmation Email";
request.Data.Properties.Description = "Student Details";
// Because we are making async calls in the DataRequested event handler,
// we need to get the deferral first.
DataRequestDeferral deferral = request.GetDeferral();
// Make sure we always call Complete on the deferral.
try
{
StorageFolder tempFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFile EmailFile = await tempFolder.GetFileAsync("StundentDetails.html");
List<IStorageItem> storageItems = new List<IStorageItem>();
storageItems.Add(EmailFile);
request.Data.SetStorageItems(storageItems);
}
finally
{
deferral.Complete();
}
}
初めて正しく実行され、ファイルを共有するために共有 contracxt が開かれていますが、再度共有しようとすると (ファイルを共有するために 2 回目)、「予期しない時間にメソッドが呼び出されました」という例外がスローされます。 "、私が何か間違ったことをしている場合はお知らせください。pls は私を修正します。
前もって感謝します。