После примеров кода Google, как описано здесь.
Я воспроизвел свои образцы кода в собственном тестовом проекте (используя шаблон MVC 4 в Visual Studio Express 2013), я не могу запустить проект, потому что получаю эти ошибки:
Ошибка 1 Поскольку "Google.Apis.Sample.MVC4.Controllers.HomeController.IndexAsync(System.Threading.CancellationToken)" является асинхронным методом, который возвращает "Задача", ключевое слово return не должно сопровождаться выражением объекта. Вы намеревались вернуть "Задачу"? f:\users\sausages\documents\visual studio 2013\Projects\GooglePOC\GooglePOC\Controllers\googleAnalytics.cs 33 17 GooglePOC
Ошибка 2 Поскольку "Google.Apis.Sample.MVC4.Controllers.HomeController.IndexAsync(System.Threading.CancellationToken)" является асинхронным методом, который возвращает "Задача", ключевое слово return не должно сопровождаться выражением объекта. Вы намеревались вернуть "Задачу"? f:\users\sausages\documents\visual studio 2013\Projects\GooglePOC\GooglePOC\Controllers\googleAnalytics.cs 37 17 GooglePOC
Это блок кода, на который он жалуется:
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Mvc;
using Google.Apis.Auth.OAuth2.Mvc;
using Google.Apis.Drive.v2;
using Google.Apis.Services;
using Google.Apis.Sample.MVC4;
namespace Google.Apis.Sample.MVC4.Controllers
{
public class HomeController : Controller
{
public async Task IndexAsync(CancellationToken cancellationToken)
{
var result = await new AuthorizationCodeMvcApp(this, new AppFlowMetadata()).
AuthorizeAsync(cancellationToken);
if (result.Credential != null)
{
var service = new DriveService(new BaseClientService.Initializer
{
HttpClientInitializer = result.Credential,
ApplicationName = "ASP.NET MVC Sample"
});
// YOUR CODE SHOULD BE HERE..
// SAMPLE CODE:
var list = await service.Files.List().ExecuteAsync();
ViewBag.Message = "FILE COUNT IS: " + list.Items.Count();
return View();
}
else
{
return new RedirectResult(result.RedirectUri);
}
}
}
}
public async Task<ActionResult> IndexAsync(CancellationToken cancellationToken)
работал на меня
Task
почти такая же, какvoid
но в асинхронном контексте, поэтому может быть, что она жалуется на это.Task<ViewResult>
ли он, если вместо этого выTask<ViewResult>
?