CouchbaseClient.StoreJson не хранит свойство Id

3-й утверждать не удается. Это ошибка CouchbaseClient?

   private class StoreJsonTest
    {
        public int Id { get; set; }
        public string StrProp { get; set; }
        public int IntProp { get; set; }
    }

    [Test]
    public void CouchBase()
    {
        var storeJsonTest = new StoreJsonTest() {Id = 1, StrProp = "Test str prop", IntProp = 10};
        string key ="testStoreJson"+ Guid.NewGuid().ToString();
        CouchbaseClient couchbaseClient = new CouchbaseClient();
        couchbaseClient.StoreJson(StoreMode.Add, key, storeJsonTest);
        var extractedJson = couchbaseClient.GetJson<StoreJsonTest>(key);
        Assert.That(extractedJson.StrProp == storeJsonTest.StrProp);
        Assert.That(extractedJson.IntProp == storeJsonTest.IntProp);
        Assert.That(extractedJson.Id == storeJsonTest.Id);
    }

Как мне сохранить свойство Id для couchbase?

1 ответ

Решение

Добавьте следующую строку где-нибудь в запуске вашего приложения:

CouchbaseClientExtensions.JsonSerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

Средство разрешения контракта по умолчанию является внутренней реализацией, которая сериализует все, кроме свойств идентификатора.

'CamelCasePropertyNamesContractResolver' исходит от Newtonsoft.Json.Serialization Пространство имен.

Другие вопросы по тегам