После экспериментов с определениями конечных точек вы можете использовать либо спецификацию типа Func<dynamic,object>
(# 0
ниже), либо оболочку для метода (# 1
). Это потому, что есть несколько перегрузок Get
, поэтому компилятору требуются эти подсказки, чтобы выбрать правильный. В качестве альтернативы, если метод возвращает задание, его можно указать без переноса (## 2
, 3
), например, Асинхронные методы всегда возвращают задачу:
Get("/favoriteNumber0/{value:int}", (Func<dynamic, object>)FavoriteNumberObject);
Get("/favoriteNumber1/{value:int}", arg => FavoriteNumber(arg));
Get("/favoriteNumber2/{value:int}", FavoriteNumberTask);
Get("/favoriteNumber3/{value:int}", FavoriteNumberTaskCt);
...
private object FavoriteNumberObject(dynamic parameters)
{
return "So your favorite number is " + parameters.value + "?";
}
private string FavoriteNumber(dynamic parameters)
{
return "So your favorite number is " + parameters.value + "?";
}
private Task<string> FavoriteNumberTask(dynamic parameters)
{
return Task.FromResult("So your favorite number is " + parameters["value"] + "?");
}
private Task<string> FavoriteNumberTaskCt(dynamic parameters, CancellationToken ctx)
{
return Task.FromResult("So your favorite number is " + parameters["value"] + "?");
}