-
Notifications
You must be signed in to change notification settings - Fork 23
Serialization
RabbitBus provides serialization of object-based messages through an extensible serialization strategy. By default, a binary serialization strategy (RabbitBus.Configuration.BinarySerializationStrategy) is used for the serialization all messages. Alternately, a JSON serialization strategy (RabbitBus.Serialization.Json.JsonSerializationStrategy) is provided and is maintained as a separate .Net assembly and NuGet package.
RabbitBus allows serialization to be configured at a global default level as well as at the message level.
To configure the default serialization strategy used for all messages not configured with a specific serialization strategy, the BusBuilder type provides a WithDefaultSerializationStrategy() method:
_bus = new BusBuilder()
.Configure(ctx => ctx.WithDefaultSerializationStrategy(new JsonSerializationStrategy())
.Publish<StatusUpdate>()
.WithExchange("status-update-exchange"))
.Build();
To configure a serialization strategy for specific message types, the BusBuilder type provides a WithSerializationStrategy() contextual method:
_bus = new BusBuilder()
.Configure(ctx => ctx.Publish<string>()
.WithExchange("status-update-exchange")
.WithSerializationStrategy(_serializationStrategy))
.Build();