В первом примере я указываю делегат abcDelegate и использую его в .MapGet, где я ожидаю использовать эту подпись с делегатом, а не с RequestDelegate!
Код: Выделить всё
public static RouteHandlerBuilder MapGet(
this IEndpointRouteBuilder endpoints,
[StringSyntax("Route")] string pattern,
Delegate handler)
Код: Выделить всё
internal sealed class CheckMailStatus : IEndpoint
{
private static async Task abcDelegate(string id, IEmailRepository emailRepository)
{
IEnumerable a = await emailRepository.GetAllAsync();
InternalGenericEmail? result = a.FirstOrDefault(p => p.Id.ToString() == id);
if (result is not null)
{
return TypedResults.Ok(result);
}
return TypedResults.NotFound($"Die angegebne Id: {id} ist nicht vorhanden");
}
public void MapEndpoint(IEndpointRouteBuilder app) => app.MapGet("api/notifier/generic/check/{id}", abcDelegate);
}
Делегат "RequestDelegate" не принимает 2 аргумента
появляется:
Код: Выделить всё
internal sealed class CheckMailStatus : IEndpoint
{
public void MapEndpoint(IEndpointRouteBuilder app) => app.MapGet("api/notifier/generic/check/{id}", async (string id, IEmailRepository emailRepository) =>
{
IEnumerable a = await emailRepository.GetAllAsync();
InternalGenericEmail? result = a.FirstOrDefault(p => p.Id.ToString() == id);
if (result is not null)
{
return TypedResults.Ok(result);
}
return TypedResults.NotFound($"Die angegebne Id: {id} ist nicht vorhanden");
});
}
Пример на Dotnetfiddle.net
Подробнее здесь: https://stackoverflow.com/questions/798 ... d-delegate
Мобильная версия