couchbaselabs / Linq2Couchbase

A Language Integrated Query (LINQ) provider for the Couchbase .NET SDK
Apache License 2.0
95 stars 46 forks source link

Move serialization converters to DI #336

Closed brantburnett closed 3 years ago

brantburnett commented 3 years ago

Motivation

Allow serialization converters to be registered for each cluster instead of in a global static scope.

Modifications

Add a hidden DefaultSerializationConverterProvider as internal, and add a method to inject an alternative via CouchbaseLinqConfiguration.

Also add the IJsonNetSerializationConverterRegistry as a setting to CouchbaseLinqConfiguration to provide a method to easily inject custom converters without replacing DefaultSerializationConverterProvider.

Update SerializationExpressionTreeProcessor to get the ISerizationConverterProvider from DI.

Results

Serialization converters are more easily customizable.

Closes #324