Таким образом, вопрос в том, есть ли какой -либо элегантный способ вернуть результат непосредственно из промежуточного программного обеспечения? Если я не ошибаюсь, можно вернуть результат промежуточного программного обеспечения в качестве параметра обработчика, но это кажется мне крайне неприглядным. Затем мне нужно было бы проверить каждый обработчик, если он содержит что -то и т. Д. И другие проблемы. Я буду использовать эту логику в других местах, кроме WebAPI. < /P>
outputDto < /p>
Код: Выделить всё
public class OutputDto
{
public bool Valid { get; set; }
}
< /code>
myhandler < /p>
public class MyHandler
{
public Task Handle(InputDto input)
{
return Task.FromResult(new OutputDto() { Valid = true });
}
}
< /code>
mymiddleware < /p>
public class MyMiddleware
{
public async Task BeforeAsync(InputDto input)
{
return (HandlerContinuation.Stop, new OutputDto() { Valid = false });
}
}
< /code>
контроллер - Действие вызывает промежуточное программное обеспечение и возвращает NULL < /p>
private readonly IMessageBus _bus;
public WeatherForecastController(IMessageBus bus)
{
_bus = bus;
}
[HttpGet(Name = "GetWeatherForecast")]
public async Task Get()
{
var a = await _bus.InvokeAsync(new InputDto { Id = 5 });
return a;
}
< /code>
Регистрация < /p>
builder.UseWolverine(options =>
{
options.Policies.AddMiddleware();
});
Подробнее здесь: https://stackoverflow.com/questions/796 ... turn-value