.Net - промежуточное программное обеспечение росомахи с возвратной стоимостьюC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 .Net - промежуточное программное обеспечение росомахи с возвратной стоимостью

Сообщение Anonymous »

Я переключаюсь с Mediatr на Росоману. Это удобно использовать. Тем не менее, я столкнулся с одной проблемой. Я хочу добавить промежуточное программное обеспечение, чтобы проверить авторизацию перед использованием обработчика. Что тоже не проблема. Но проблема состоит в том, чтобы вернуть некоторый результат непосредственно из промежуточного программного обеспечения. Что обычно возможно в Mediatr (поведение).
Таким образом, вопрос в том, есть ли какой -либо элегантный способ вернуть результат непосредственно из промежуточного программного обеспечения? Если я не ошибаюсь, можно вернуть результат промежуточного программного обеспечения в качестве параметра обработчика, но это кажется мне крайне неприглядным. Затем мне нужно было бы проверить каждый обработчик, если он содержит что -то и т. Д. И другие проблемы. Я буду использовать эту логику в других местах, кроме 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
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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