我希望能够在运行时向我的应用程序添加对可能存在于不同服务器上的其他消息类型的订阅。我想要实现的是一个监控应用程序,我可以在其中添加/删除运行时的订阅。这可能吗?如何获取对当前 UnicastBus 映射的引用?
这是我目前所做的,但我相信这会覆盖当前存在的所有映射。
MessageEndpointMappingCollection mappings = new MessageEndpointMappingCollection();
mappings.Add(new MessageEndpointMapping()
{
Messages = m.MessageType.ToString(),
Endpoint = m.QueueName
});
IComponentConfig<UnicastBusConfig> busConfig = config.Configurer.ConfigureComponent<UnicastBusConfig>(ComponentCallModelEnum.None);
busConfig.ConfigureProperty(u => u.MessageEndpointMappings, mappings);
最佳答案
Yves 在他的 Azure 示例中使用了此代码(可在 NSB 示例集合中找到)
using NServiceBus.Config;
using NServiceBus.Config.ConfigurationSource;
namespace OrderService
{
class ConfigOverride : IProvideConfiguration<UnicastBusConfig>
{
public UnicastBusConfig GetConfiguration()
{
return new UnicastBusConfig
{
MessageEndpointMappings = new MessageEndpointMappingCollection
{
new MessageEndpointMapping { Messages="MyMessages", Endpoint="orderserviceinputqueue" }
}
};
}
}
}
关于c# - 如何以编程方式将映射添加到 UnicastBusConfig?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5472896/