我正在使用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/