到目前为止,我发现可以安装RawRabbit.Enrichers.Attributes
包并使用属性配置消息类:
[Queue(Name = "my_queue"]
private class AttributedMessage
{
}
并设置
var client = RawRabbitFactory.CreateSingleton(new RawRabbitOptions
{
Plugins = plugin => plugin.UseAttributeRouting()
});
但我宁愿指定队列名称和发布命令以保持更灵活:
await _busClient.PublishAsync(message /*some_config_here???*/);
是否可以使用RawRabbit 2.0.0-rc5?
答案 0 :(得分:0)
我认为这可能对您有帮助
static async Task Publish()
{
var config = new RawRabbitConfiguration
{
Username = "YOUR_RMQ_USER",
Password = "YOUR_RMQ_PWD",
Port = 5672,
VirtualHost = "/",
Hostnames = { "YOUR_RMQ_HOST_OR_IP" }
};
var bus = BusClientFactory.CreateDefault(config);
await bus.PublishAsync(
message: yourAwesomeMessagePayload,
configuration: ctx => ctx.WithExchange(BuildExchangeConfig)
.WithRoutingKey("custom.message.routing.key")
);
Console.WriteLine("message published!");
}
static void BuildExchangeConfig(IExchangeConfigurationBuilder e)
{
e.WithName("YOUR_EXCHANGE_NAME")
.WithAutoDelete(false)
.WithDurability(true)
.WithType(ExchangeType.Topic);
}