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

C# 如何从ExecuteAsync()方法获取字段,c#,asynchronous,google-drive-api,async-await,C#,Asynchronous,Google Drive Api,Async Await,我熟悉在我的谷歌硬盘中创建文件夹,但我正在研究使用异步方法来实现这一点。然而,在这样做的过程中,我不知道如何获得一个我显式添加到我想要返回的字段中的字段 我的代码如下: private Task<Google.Apis.Drive.v3.Data.File> CreateGoogleDriveFolderAsync(DriveService service, string foldername, string parent_id = null) { IList<stri

我熟悉在我的谷歌硬盘中创建文件夹,但我正在研究使用异步方法来实现这一点。然而,在这样做的过程中,我不知道如何获得一个我显式添加到我想要返回的字段中的字段

我的代码如下:

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;
}
private Task CreateGoogleDriveFolderAsync(DriveService服务,字符串foldername,字符串parent_id=null)
{
IList parent_id=新列表();
Google.api.Drive.v3.Data.File文件夹=新建Google.api.Drive.v3.Data.File
{
Name=foldername
,MimeType=“application/vnd.google apps.folder”
,Description=“客户端名称:blah\n用户:Rudy\n”
};
var insert=service.Files.Create(文件夹);
//我想去的地方。
插入.Fields=“id”;
var task=insert.ExecuteAsync();
task.ContinueWith(t=>
{
//NOTNRANTOMPLICATION-如果上载失败,将调用此代码
Console.WriteLine(“未能创建文件夹\“{0}\”:“+t.Exception,foldername”);
},任务继续选项。非自动完成);
task.ContinueWith(t=>
{
//我想要一种从插入执行中访问“id”的方法。
insertLogging(foldername,“目录已创建”);
});
返回任务;
}
使用中的示例,
等待任务并从那里获取文件,您应该可以访问其属性

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;
}
专用异步任务CreateGoogleDriveFolderAsync(DriveService DriveService,字符串foldername){
var metadata=新文件()
{
Name=foldername,
MimeType=“application/vnd.google apps.folder”
};
var request=driveService.Files.Create(元数据);
request.Fields=“id”;
var folder=wait request.ExecuteAsync();
Console.WriteLine(“文件夹ID:+文件夹.ID”);
返回文件夹;
}

等待任务并从那里取回文件您应该有权访问其属性谢谢@Nkosi,我正在等待,但是可以访问“其”属性吗?我的方法调用如下:
wait-CreateGoogleDriveFolderAsync(服务,“MyNewFolder”)谢谢,就是这个。我没有设置等待电话。我还发现在这个方法中我可以这样做:
task.Result.Id
,其中
task.Result
返回Google文件。再次感谢。