Serialization

Component: NServiceBus
NuGet Package NServiceBus (7-pre)
This page targets a pre-release version and is subject to change prior to the final release.

NServiceBus takes instances of .NET objects (messages, events and commands) and then sends/receives them over a specified Transport. As part of this the object needs to be serialized and deserialized. To achieve this NServiceBus uses Serializers.

Supported Serializers

Using an existing serializer

The default serializer used in NServiceBus projects is the custom XmlSerializer.

The pages dedicated to particular Serializers show how to configure the endpoint to use each of them. Unless explicitly configured otherwise, NServiceBus will use XmlSerializer for serializing and deserializing all messages.

The same Serializer must be used by the sending endpoint to serialize messages and by receiving endpoint to deserialize them, unless additional deserializers are specified.

In order to register community run serializer or custom serializer, refer to the Custom serializers - Register the serializer section.

Specifying additional deserializers

To support sending and receiving messages between endpoints using different serializers, additional deserialization capability may be specified. It is possible to register additional deserializers to process incoming messages. Additionally, if a deserializer requires custom settings, they can be provided during its registration.

// configures XML serialization as default
endpointConfiguration.UseSerialization<XmlSerializer>();
// configures additional deserialization
var mySerializer = endpointConfiguration.AddDeserializer<MyCustomSerializerDefinition>();
mySerializer.Settings("serializerSetting");
When using multiple deserializers make sure that there's only one type registered per given ContentType.

Samples

Related Articles


Last modified