Настраиваемое название темы с Rebus - PullRequest
0 голосов
/ 06 июня 2019

Тема должна быть настроена через конфигурационный файл.

Ниже приведен код. Интересно, это лучшее решение, встроенная поддержка или лучшее решение?

public class TopicNameConvention : ITopicNameConvention
{
    private readonly Config _config;

    public TopicNameConvention(Config config)
    {
        _config= config;
    }
    public string GetTopic(Type eventType)
    {
        switch (eventType.Name)
        {
            case nameof(Order):
                return _config.Topic.Name;

             //... more
        }
        throw new Exception("Topic name not exist");
    }
}

1 Ответ

0 голосов
/ 06 июня 2019

Если вы намерены вручную настроить название темы для каждого из типов событий, перейдите к нему.

Мое личное мнение таково, что это кажется довольно жестким, и я бы опасался, что вам придется обновлять слишком много вещей одновременно, когда вы вводите новый тип события.

Почему бы просто не пойти с

public string GetTopic(Type eventType) => eventType.Name;

, который может обрабатывать все типы .NET в мире (просто убедитесь, что у вас нет двух типов событий с одинаковыми именами в двух разных пространствах имен).

...