Я использую библиотеку 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
СМИ ⇐ C#
Место общения программистов C#
1756814530
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>
Если использовать этот подход, все работает, но мне не нравится это решение. Если кто -нибудь знает лучшего способа решить эту проблему, дайте мне совет, пожалуйста.
Подробнее здесь: [url]https://stackoverflow.com/questions/73760859/mediatr-generic-handlers[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия