СМИC#

Место общения программистов C#
Ответить
Anonymous
 СМИ

Сообщение Anonymous »

Я использую библиотеку Mediatr в моем приложении Asp .net Core 6. И у меня есть та же логика для группы запросов, поэтому я хочу использовать один и тот же обработчик для всех из них. Проблема не нова, но решения, которые я нашел, мне не помогли. У меня есть свое собственное решение для решения этой проблемы, но мне не нравится, и надеюсь, что кто -то знает, что лучший способ решить эту проблему. < /P>
Пример показан здесь: < /p>
public class HandlerRequest : IRequest
{
public T Data { get; set; }
}

public class Handler : IRequestHandler
{
public Task Handle(HandlerRequest request, CancellationToken cancellationToken)
{
// the logic is here
return Task.FromResult(new Unit());
}
}
< /code>
Регистрация Mediatr заключается в следующем: < /p>
builder.Services.AddMediatR(typeof(BusinessLayer));
< /code>
Когда я пытаюсь позвонить в свой Mediatr, например: < /p>
await _mediator.Send(new HandlerRequest{Data = 5});
await _mediator.Send(new HandlerRequest{Data = "TEST"});
< /code>
Я получаю исключение: < /p>

Обработка построения ошибок для запроса типа
mediatr.irequesthandler2[AT.Messenger.Credentials.Business.Requests.V1.Modeles.HandlerRequest< /code> 1 [System.int32], mediatr.unit].
Зарегистрируйте свои обработчики с помощью контейнера. См. Образцы в GitHub
для примеров. Я также пытался зарегистрировать обработчик как Scoped или Singleton Service, как я видел этот совет в Интернете, но это не помогает.public class HandlerInt : Handler
{
}

public class HandlerString : Handler
{
}
< /code>
Если использовать этот подход, все работает, но мне не нравится это решение. Если кто -нибудь знает лучшего способа решить эту проблему, дайте мне совет, пожалуйста.

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

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

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

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

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

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