我有一个类,看起来像这样:
public class MyClass
{
string _value;
public static implicit operator MyClass (string value)
{
return new MyClass(value);
}
MyClass(string value)
{
// Do something...
_value = value;
}
public override string ToString()
{
// Do something...
return _value;
}
}
因此,我可以使用这样的类:
MyClass a = "Hello!";
但是在Raven DB中,它将像
"SomeProperty": {}
因为它没有公共(public)属性(property)。这是完全没有用的。
为了解决这个问题,我将_value私有(private)成员改为一个公共(public)属性,如下所示:
public string Value { get; set; }
和Raven DB将存储
"SomeProperty": { "Value": "Hello!" }
它会反序列化。
但是我不想要这个公共(public)属性(property)。我能以某种方式使Raven DB像对字符串那样对类进行序列化和反序列化吗?喜欢:
"SomeProperty": "Hello!"
最佳答案
您可以编写一个JsonConverter并教RavenDB如何存储数据。
编写转换器后,将其注册在store.Conventions.CustomizeSerializer事件中。
关于c# - 如果我创建了隐式类型转换运算符,可以使Raven DB像字符串一样序列化一个对象吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10642184/