c# - 如何从 ExecuteAsync() 方法获取字段

标签 c# asynchronous google-drive-api async-await

我熟悉如何在我的 Google Drive 中创建文件夹,但我正在考虑使用异步方法来执行此操作。但是,在这样做时,我不确定如何获取我明确添加到我希望返回的字段中的字段。

我的代码如下:

private Task<Google.Apis.Drive.v3.Data.File> CreateGoogleDriveFolderAsync(DriveService service, string foldername, string parent_id = null)
{
    IList<string> parent_ids = new List<string>();

    Google.Apis.Drive.v3.Data.File folder = new Google.Apis.Drive.v3.Data.File
    {
        Name = foldername
        , MimeType = "application/vnd.google-apps.folder"
        , Description = "Client Name: blah\nUser: Rudy\n"
    };

    var insert = service.Files.Create(folder);

    // The field I'd like to get somewhere.
    insert.Fields = "id";

    var task = insert.ExecuteAsync();

    task.ContinueWith(t =>
    {
        // NotOnRanToCompletion - this code will be called if the upload fails
        Console.WriteLine("Failed to create folder \"{0}\": " + t.Exception, foldername);
    }, TaskContinuationOptions.NotOnRanToCompletion);
    task.ContinueWith(t =>
    {
        // I'd like a way to access "id" from my insert execution.
        log.insertLogging(foldername, "Directory Created");
    });

    return task;
}

最佳答案

使用 documentation 中的示例, 等待 任务并从那里取回文件你应该可以访问它的属性

private async Task<File> CreateGoogleDriveFolderAsync(DriveService driveService, string foldername) {
    var metadata = new File()
    {
        Name = foldername,
        MimeType = "application/vnd.google-apps.folder"
    };
    var request = driveService.Files.Create(metadata);
    request.Fields = "id";
    var folder = await request.ExecuteAsync();
    Console.WriteLine("Folder ID: " + folder.Id);

    return folder;
}

关于c# - 如何从 ExecuteAsync() 方法获取字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43143226/

相关文章:

c# - 在 .NET Standard 上实现异步返回类型

multithreading - 如何通过 QSqlQueryModel 进行异步查询?

Javascript Async.js Parallel 不适用于 socket.io

rest - Swagger/RAML(或任何类似的 REST API 规范)是否支持 REST 异步客户端回调?

java - Google 云端硬盘 API v3 (java) : Deleting a resource property does not work

c# - 返回列表作为数组获取的 Web 方法

c# - 方法签名中具有基类型的派生类型集合的扩展方法

google-apps-script - 在此设置中是否有任何方法可以减少 Spreadsheet.makeCopy() 的计算时间?

google-apps-script - 如何将幻灯片从一个演示文稿复制到另一个演示文稿?

c# - 为什么仅在调试时才引发跨线程异常?