Skip to content

Serialization

derekgreer edited this page Jun 14, 2012 · 1 revision

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.

Default Serialization

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();

Message-level Serialization

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();
Clone this wiki locally