Понимание requestDelegate в классе промежуточного программного обеспеченияC#

Место общения программистов C#
Ответить
Anonymous
 Понимание requestDelegate в классе промежуточного программного обеспечения

Сообщение Anonymous »

Я создал класс (с использованием учебных пособий), который служит глобальным классом промежуточного программного обеспечения, чтобы поймать и обрабатывать все ошибки в одном месте: < /p>

Код: Выделить всё

using System.Net;

namespace WebApi.Helpers
{
public class ErrorHandlerMiddleware
{
private readonly RequestDelegate _next;

public ErrorHandlerMiddleware(RequestDelegate next)
{
_next = next;
}

public async Task Invoke(HttpContext context)
{
try
{
await _next(context);
}
catch (Exception error)
{
var response = context.Response;
string result = "";
response.ContentType = "application/json";
response.StatusCode = (int)HttpStatusCode.BadRequest;
await response.WriteAsync(result);
}
}

}
}
Приведенный выше код используется в ожидаемом способе:
Забросьте новое Appexception («Произошла ошибка»);
После прочтения нескольких тем по предмету промежуточного программного обеспечения я понимаю, что класс промежуточного программного обеспечения действует по запросу в Pipeline, а затем обрабатывает (и обрабатывает Pip Likine в Pipine в Pipine. /> Однако в методе вызова выше я не понимаю следующее: < /p>
try
{
await _next(context);
}
< /code>
Это вызывает следующий запрос в трубопроводе или текущий? У меня в основном проблемы с пониманием того, как бросает исключение в другом месте, перехватывается и обрабатывается в методе Invoke.

Подробнее здесь: https://stackoverflow.com/questions/737 ... ware-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»