ProtoBuf-Net Serializer

NuGet Package NServiceBus.ProtoBuf (3.x) | License
This is a community maintained project. License and support are independent of Particular Software.
Target NServiceBus Version: 7.x

Serializes messages using protobuf-net.

There are two serializers that target Protocol Buffers. The ProtoBuf-Google serializer targets the Google.Protobuf NuGet package, while the ProtoBuf-Net serializer targets the protobuf-net NuGet package.


This serializer does not support messages defined as interfaces. If an explicit interface is sent, an exception will be thrown with the following message:

Interface based message are not supported.
Create a class that implements the desired interface

Instead, use a public class with the same contract as the interface. The class can optionally implement any required interfaces.

Custom Settings

Customizes the SerializerOptions used for serialization.

var runtimeTypeModel = TypeModel.Create();
runtimeTypeModel.IncludeDateTimeKind = true;
var serialization = endpointConfiguration.UseSerialization<ProtoBufSerializer>();

Custom content key

When using additional deserializers or transitioning between different versions of the same serializer it can be helpful to take explicit control over the content type a serializer passes to NServiceBus (to be used for the ContentType header).

var serialization = endpointConfiguration.UseSerialization<ProtoBufSerializer>();


Related Articles

Last modified