使用 Rebus 的可配置主题名称
Configurable Topic name with 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");
}
}
如果您打算手动配置每个事件类型的主题名称,请继续。
我个人的看法是,这似乎很死板,我担心每当引入新的事件类型时,您都必须同时更新太多东西。
为什么不选择
public string GetTopic(Type eventType) => eventType.Name;
它可以处理世界上所有的 .NET 类型(只要确保在两个不同的命名空间中没有两个同名的事件类型)。
主题需要通过配置文件进行配置。
下面是代码。我想知道这是否是最佳解决方案或任何内置支持或更好的解决方案?
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");
}
}
如果您打算手动配置每个事件类型的主题名称,请继续。
我个人的看法是,这似乎很死板,我担心每当引入新的事件类型时,您都必须同时更新太多东西。
为什么不选择
public string GetTopic(Type eventType) => eventType.Name;
它可以处理世界上所有的 .NET 类型(只要确保在两个不同的命名空间中没有两个同名的事件类型)。