Итак, вопрос в том, есть ли какой-нибудь элегантный способ вернуть результат непосредственно из промежуточного программного обеспечения?
Я прочитал документацию по росомахе, попробовал все возможные варианты, и ничего не помогло. Если не ошибаюсь, можно вернуть результат промежуточного программного обеспечения как параметр обработчика, но мне это кажется крайне некрасивым. Тогда мне пришлось бы проверять каждый обработчик, содержит ли он что-то и т. д. и другие проблемы.
Я не хочу использовать библиотеку Wolverine.HTTP. Я буду использовать эту логику не только в WebApi, но и в других местах.
OutputDto
Код: Выделить всё
public class OutputDto
{
public bool Valid { get; set; }
}
Код: Выделить всё
public class MyHandler
{
public Task Handle(InputDto input)
{
return Task.FromResult(new OutputDto() { Valid = true });
}
}
Код: Выделить всё
public class MyMiddleware
{
public async Task BeforeAsync(InputDto input)
{
return (HandlerContinuation.Stop, new OutputDto() { Valid = false });
}
}
Код: Выделить всё
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;
}
Код: Выделить всё
builder.UseWolverine(options =>
{
options.Policies.AddMiddleware();
});
Подробнее здесь: https://stackoverflow.com/questions/796 ... turn-value
Мобильная версия