小编Mik*_*ael的帖子

如果我创建了一个隐式类型转换运算符,我可以让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;
    }
}
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)

c# json json.net ravendb

6
推荐指数
2
解决办法
1826
查看次数

标签 统计

c# ×1

json ×1

json.net ×1

ravendb ×1