主题需要通过配置文件进行配置。
下面是代码。我想知道这是最好的解决方案还是任何内置支持,还是更好的解决方案?
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");
}
}
答案 0 :(得分:0)
如果您打算手动配置每种事件类型的主题名称,请继续。
我个人的看法是,这似乎很刻板,我担心每次引入新的事件类型时,您都必须同时更新太多内容。
为什么不随便走
public string GetTopic(Type eventType) => eventType.Name;
它可以处理世界上所有的.NET类型(请确保在两个不同的名称空间中没有两个具有相同名称的事件类型)。