我有一个看起来像这样的类:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
因此,我可以使用这样的类:
MyClass a = "Hello!";
Run Code Online (Sandbox Code Playgroud)
但是在Raven DB中它只会被存储起来
"SomeProperty": {}
Run Code Online (Sandbox Code Playgroud)
因为它没有公共财产.而且它毫无用处.
要解决这个问题,我会将_value私有成员改为公共属性,如下所示:
public string Value { get; set; }
Run Code Online (Sandbox Code Playgroud)
和Raven DB将存储
"SomeProperty": { "Value": "Hello!" }
Run Code Online (Sandbox Code Playgroud)
它将是可反序列化的.
但我不想要这个公共财产.我可以以某种方式使Raven DB序列化和反序列化类,就像它是一个字符串?喜欢:
"SomeProperty": "Hello!"
Run Code Online (Sandbox Code Playgroud)