Problem In some scenarios engineers might want to use a custom JSON serializer for documents stored in CosmosDB. Solution In CosmosDBV3 .NET Core API, when creating an instance of CosmosClient one of optional setting in CosmosClientOptions is to specify an instance of a Serializer . This serializer must be JSON based and be of CosmosSerializer type. This means that if a custom serializer is needed this should inherit from CosmosSerializer abstract class and override its two methods for serializing and deserializing of an object. The challenge is that both methods from CosmosSerializer are stream based and therefore might be not as easy to implement as engineers used to assume - still not super complex. For demonstration purpose as or my custom serializer I'm going to use Netwonsoft.JSON library. Firstly a new type is needed and this must inherit from CosmosSerializer. using Microsoft.Azure.Cosmos; using Newtonsoft.Json; usin...
Damian Zapart, Principal Engineering Manager @ Microsoft - official blog.