Могу ли я заставить Raven DB сериализовать объект как строку, если я создал неявный оператор преобразования типов?

У меня есть класс, который выглядит примерно так:

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!"
6
задан Mikael 17 May 2012 в 19:21
поделиться