我正在使用ravendb序列化对象并通过mstest对其进行测试。

我收到此结果:System.ArgumentException: Object serialized to String. RavenJObject instance expected.
这是我的代码

public class Store
{
    private static IDocumentStore store = createStore();

    private static EmbeddableDocumentStore createStore()
    {
        var returnStore = new EmbeddableDocumentStore();
        returnStore.DataDirectory = @"./PersistedData";
        returnStore.Initialize();
        return returnStore;
    }

    public static void Write(string value)
    {
        using (var session = store.OpenSession())
        {
            session.Store(value);
            session.SaveChanges();
        }
    }
}

似乎根本原因在于RavenJObject的工作方式,因为这会引发相同的错误:
RavenJObject storeMe = RavenJObject.FromObject("errors", new JsonSerializer());

如何在RavenDB中进行自定义序列化?

最佳答案

要对您没有编写的类进行自定义序列化(因此您无法属性化),则要实现Newtonsoft.Json.JsonConverter

然后像这样注册它:

using (var session = store.OpenSession())
     {
         session.Advanced.Conventions.CustomizeJsonSerializer = serializer => serializer.Converters.Add(MailAddressJsonConverter.Instance);
         session.Store(mailAddress);
         session.SaveChanges();
     }

关于ravendb - 我需要怎么做才能在RavenDB中存储对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6514491/

10-13 06:37