У меня есть класс, который выглядит примерно так:
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": {}
, так как он не имеет общественные свойства. И это совершенно бесполезно.
Чтобы решить эту проблему, я бы сделал частный член _value общедоступным, например:
public string Value { get; set; }
и Raven DB будет хранить
"SomeProperty": { "Value": "Hello!" }
, и его можно будет десериализовать.
Но мне не нужна эта государственная собственность. Могу ли я каким-то образом заставить Raven DB сериализовать и десериализовать класс, как если бы это была строка? Например:
"SomeProperty": "Hello!"