默认MongoDB公共属性的序列化

Dan*_*son 5 c# serialization mongodb

我知道我必须在我的类上有公共读写属性,以便MongoDB驱动程序序列化/反序列化我的对象.但是我想知道是否有方法/首选方法从我的其余代码中隐藏写属性?

例如.

class Product
{
    private List<Release> releases;

    public List<Release> Releases
    {
        get
        {
            return new List<Release>(releases); //I can protect 'releases' when reading by passing a copy of it
        }
        set
        {
            releases = value; //BUT how can I protect release when writing?
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望MongoDB能够序列化/反序列化我的类型,但我不希望我的其余代码能够覆盖它本来应该是私有的字段/属性.有处理这个的模式吗?我曾想过有一个单独的ProductDoc类,它只是用作将对象放入和放出MongoDB的中介,但我不确定是否有更好的解决方案.

pet*_*kyy 5

我现在还没有和mongo合作很长时间.但你可能会尝试阅读这个线程MongoDb Map Setters或尝试使你的setter受到如下保护:

public List<Release> Releases
{
    get
    {
        return new List<Release>(releases); //I can protect 'releases' when reading by passing a copy of it
    }
    protected set
    {
        releases = value; //BUT how can I protect release when writing?
    }
}
Run Code Online (Sandbox Code Playgroud)