Rag*_*hav 4 json.net azure-cosmosdb
我正在使用 Json.Net 来装饰我的文档属性。
public class MyDocumentType : Document
{
[JsonProperty]
[JsonConverter(typeof(StringEnumConverter))]
public MyEnumType EnumProertyName{ get; set; }
[JsonProperty]
public uint MyIntPrperty{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我更新 cosmos db 中的文档时,它没有更新为字符串值。它始终默认为默认枚举值。如何使其序列化和反序列化为字符串值。我不想使用数字,就像添加一个新的枚举值一样,事情就会崩溃。
使用Cosmos DB SDK 3+,无法JsonSerializerSettings直接通过。
您需要延长CosmosSerializer. CosmosSerializer您可以从Cosmos DB SDK 中的CosmosJsonDotNetSerializer获取实现示例。
不幸的是,由于此类,internal sealed您的代码中可能会逐字复制。我还提出了一个 GitHub 问题,要求 Cosmos 团队在这里解决这个问题。
一旦您的代码中有了 CosmosSerializer 的实现,您就可以JsonSerializerSettings按如下方式传递:
// Create CosmosClientOptions
var cosmosClientOptions = new CosmosClientOptions
{
Serializer =
new CosmosJsonDotNetSerializer(
new JsonSerializerSettings() {
// Your JSON Serializer settings
})
};
var cosmosClient = new CosmosClient(connectionString, cosmosClientOptions);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4432 次 |
| 最近记录: |