带Rebus的可配置主题名称

时间:2019-06-05 22:01:24

标签: rebus

主题需要通过配置文件进行配置。

下面是代码。我想知道这是最好的解决方案还是任何内置支持,还是更好的解决方案?

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 :(得分:0)

如果您打算手动配置每种事件类型的主题名称,请继续。

我个人的看法是,这似乎很刻板,我担心每次引入新的事件类型时,您都必须同时更新太多内容。

为什么不随便走

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

它可以处理世界上所有的.NET类型(请确保在两个不同的名称空间中没有两个具有相同名称的事件类型)。

相关问题