Обработчик уведомлений не получает уведомление после mediator.publi sh in. NET -Core - PullRequest
0 голосов
/ 20 апреля 2020

Я создал класс уведомлений с именем SendMail следующим образом:

 public class SendMail : INotification
    {
        public string From { get; set; }
        public string To { get; set; }
        public string Subject { get; set; }
        public string Message { get; set; }
    }

После этого я реализовал SendMailNotificationHandler:

public class SendMailNotificationHandler: INotificationHandler<SendMail>
    {
        public Task Handle(SendMail notification, CancellationToken cancellationToken)
        {
            Console.WriteLine("Testing");

            return Task.CompletedTask;
        }

И наконец я выполнил процедуру для публикации sh уведомление в системе в моем RequestHandler:

public Task<OperationResult> Handle(CreateMailRequest request, CancellationToken cancellationToken)
        {
            // Just for example
            _repo.Insert(anything);

            _mediator.Publish(new SendMail
            {
                From = "test@test.com",
                To = "test@test.com",
                Subject = "New message",
                Message = "New test message"
            }, cancellationToken);


            return OperationResult.Success().AsTask;
        }

Проблема в том, что при отладке я вижу, что метод publi sh запущен, но NotificationHandler никогда не перехватывает это уведомление о создании новой почты.
Я не знаю, что происходит. Может ли кто-нибудь помочь с этим?

1 Ответ

0 голосов
/ 22 апреля 2020

Проблема была в моем SimpleInjector Bootstrap .cs. Мне пришлось добавить следующий код в мой метод GetAssemblies:

private static IEnumerable<Assembly> GetAssemblies()
        {
            yield return typeof(ExceptionPipelineBehavior<,>).GetTypeInfo().Assembly;

            //added line
            yield return typeof(ReportCreatedNotificationHandler).GetTypeInfo().Assembly;
        }
...