示例#1
0
 public PublisherMessage(
     IPublisher publisher,
     object message,
     IPublisherSerializer serializer,
     IRouting routing,
     string correlationId = default,
     CancellationToken cancellationToken = default)
 {
     CreatedAt         = DateTime.UtcNow;
     Routing           = routing ?? throw new ArgumentNullException(nameof(routing));
     CancellationToken = cancellationToken;
     Publisher         = publisher ?? throw new ArgumentNullException(nameof(publisher));
     _serializer       = serializer ?? throw new ArgumentNullException(nameof(serializer));
     CorrelationId     = correlationId ?? Guid.NewGuid().ToString();
     _message          = message;
     _headers          = new Dictionary <string, object>
     {
         { nameof(Routing.ExchangeName), Routing.ExchangeName },
         { nameof(Routing.RoutingKey), Routing.RoutingKey },
         { "SerializerType", serializer.GetType().FullName },
         { "CreatedAt", CreatedAt.ToString("s") }
     };
 }
 public IPublisherMessageBuilder <IPublisherMessage> WithSerializer(IPublisherSerializer serializer)
 {
     _serializer = serializer;
     return(this);
 }