我想将每条消息保存到我的数据库中。 在RabbitMQ中我直接创建一个消费者来在我的主/唯一交易所上听主题“*”(任何东西)。
在EasyNetQ中,每当我创建一个新的Message类时,似乎我必须在我的日志记录项目中添加一行。我想避免这种情况,所以不管我发送哪个消息,它都将被收集到一个地方并保存到数据库中,以备将来使用,而不必记住添加任何行。
我实施了自己的记录器
class MyLogger : IEasyNetQLogger
var logger = new MyLogger(); // implements IEasyNetQLogger
_bus = RabbitHutch.CreateBus(Constants.ConnString, x => x.Register<IEasyNetQLogger>(_ => logger));
但收到的参数似乎只是RoutingKey,CorrelationId,ConsumerTag,DliveryTag和Redelivered。但我(也)想要字符串/文本消息本身。
答案 0 :(得分:0)
您可以使用基类。如果你这样定义你的类:
public class BaseMessage
{
public string Message {get; set;}
}
并派生您从此类创建的所有其他消息。所以你可以这样做:
bus = RabbitHutch.CreateBus(Constants.ConnString, x => x.Register<BaseMessage>(_ => logger));
现在,只要您从Message
BaseMessage
属性