我正在使用带有RabbitMqTransport的MassTransit。假设我使用以下命令运行IBusControl
:
var control = Bus.Factory.CreateUsingRabbitMq(c =>
{
var host = confgurator.Host(config.BuildHostUri(), h =>
{
...
});
...
});
await control.StartAsync();
后来我使用以下命令将新端点连接到此运行实例:
host.ConnectReceiveEndpoint(Configuration.QueueName, this.ConfigureEndpoint);
有没有办法在此时配置发布/发送新的消息类型?通过“配置发布/发送”,我的意思是使用像IRabbitMqBusFactoryConfigurator
上现有的方法:
confgurator.Send<MessageContract>(_ =>
{
_.UseRoutingKeyFormatter(__ => Configuration.QueueName);
});
confgurator.Message<MessageContract>(x => x.SetEntityName(nameof(MessageContract)));
confgurator.Publish<MessageContract>(_ =>
{
...
}
根据Chris Patterson的评论,配置发布/发送消息类型只能在配置期间,在启动总线之前完成。