diff --git a/src/Atc.Cosmos/Internal/CosmosSerializerAdapter.cs b/src/Atc.Cosmos/Internal/CosmosSerializerAdapter.cs index 200e54b..63a583f 100644 --- a/src/Atc.Cosmos/Internal/CosmosSerializerAdapter.cs +++ b/src/Atc.Cosmos/Internal/CosmosSerializerAdapter.cs @@ -1,11 +1,12 @@ using System.Diagnostics.CodeAnalysis; using System.IO; +using System.Reflection; using Atc.Cosmos.Serialization; using Microsoft.Azure.Cosmos; namespace Atc.Cosmos.Internal { - public class CosmosSerializerAdapter : CosmosSerializer + public class CosmosSerializerAdapter : CosmosLinqSerializer { public CosmosSerializerAdapter(IJsonCosmosSerializer serializer) { @@ -20,5 +21,8 @@ public override T FromStream(Stream stream) public override Stream ToStream(T input) => Serializer.ToStream(input); + + public override string SerializeMemberName(MemberInfo memberInfo) + => Serializer.SerializeMemberName(memberInfo); } } \ No newline at end of file diff --git a/src/Atc.Cosmos/Serialization/IJsonCosmosSerializer.cs b/src/Atc.Cosmos/Serialization/IJsonCosmosSerializer.cs index da62b15..c953264 100644 --- a/src/Atc.Cosmos/Serialization/IJsonCosmosSerializer.cs +++ b/src/Atc.Cosmos/Serialization/IJsonCosmosSerializer.cs @@ -1,5 +1,6 @@ using System.Diagnostics.CodeAnalysis; using System.IO; +using System.Reflection; namespace Atc.Cosmos.Serialization { @@ -10,6 +11,8 @@ public interface IJsonCosmosSerializer Stream ToStream(T input); + string SerializeMemberName(MemberInfo memberInfo); + [return: MaybeNull] T FromString(string json); } diff --git a/src/Atc.Cosmos/Serialization/JsonCosmosSerializer.cs b/src/Atc.Cosmos/Serialization/JsonCosmosSerializer.cs index b541456..3efe5eb 100644 --- a/src/Atc.Cosmos/Serialization/JsonCosmosSerializer.cs +++ b/src/Atc.Cosmos/Serialization/JsonCosmosSerializer.cs @@ -1,6 +1,7 @@ using System; using System.Diagnostics.CodeAnalysis; using System.IO; +using System.Reflection; using System.Text.Json; using Microsoft.Extensions.Options; @@ -73,6 +74,10 @@ public Stream ToStream(T input) return streamPayload; } + public string SerializeMemberName(MemberInfo memberInfo) + => options.PropertyNamingPolicy?.ConvertName(memberInfo.Name) ?? + memberInfo.Name; + [return: MaybeNull] public T FromString(string json) => JsonSerializer.Deserialize(