AI agents: use the documentation index at llms.txt to locate machine-readable pages. This section is indexed by https://docs.particular.net/nservicebus/llms.txt. The markdown version of this page is served as plain text. An MCP server at /mcp serves the same content via the search_docs and read_doc tools; it is read-only and needs no credentials. Markdown versions of documentation pages are available by appending .md to the page URL. Directory URLs use index.md. They are served as text/plain because some retrieval backends reject text/markdown.

Serialization Changes in NServiceBus Version 6

Component: NServiceBus

This is part of the NServiceBus Upgrade Guide from Version 5 to 6, which also includes the following individual upgrade guides for specific components:

Feature Details
Transports
Persistence
Hosting
Other

BinarySerializer deprecated

The BinarySerializer is deprecated. Use one of the supported serializers or an external serializer.

No dependency injection for IMessageSerializer

The IMessageSerializer instances are now produced by a factory (as described in this article) instead of being resolved through dependency injection.

Built-in serializers are internal

Built-in JSON and XML serializers are internal starting with NServiceBus version 6. If a custom serializer depends on one of these serializers, the code will need to be copied.

Standardized XML Serialization

Handling of null types within the XML serializer now conforms to the W3C Specification by using the xsi:nil="true" attribute.

This change is backward compatible and will have no impact on communication between older versions of endpoints and newer versions. Older versions will be able to communicate with newer versions and vice versa.

Given the following class:

public class MessageWithNullable : IMessage
{
    public string FirstName { get; set; }
    public DateTime? BirthDate { get; set; } //Nullable DateTime property
}

A null BirthDate would result in a message in the following:

// For NServiceBus version 6.x
<MessageWithNullable
  xmlns="http://tempuri.net/NServiceBus.Serializers.XML.Test">
  <FirstName>FirstName</FirstName>
  <BirthDate xsi:nil="true"></BirthDate>
</MessageWithNullable>

// For NServiceBus version 5.x
<MessageWithNullable
  xmlns="http://tempuri.net/NServiceBus.Serializers.XML.Test">
  <FirstName>FirstName</FirstName>
  <BirthDate>null</BirthDate>
</MessageWithNullable>

BSON serializer deprecated

The BSON serializer built into the core has been removed. Use the Newtonsoft serializer as a replacement. Also see the Newtonsoft BSON sample.