c# - 公共(public)属性的默认 MongoDB 序列化

标签 c# mongodb serialization

我了解我的类必须具有公共(public)读写属性,以便 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?
        }
    }
}

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

最佳答案

我已经很长时间没有使用 mongo 了。但是您可以尝试阅读此线程 MongoDb Map Setters或尝试像这样保护您的二传手:

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?
    }
}

关于c# - 公共(public)属性的默认 MongoDB 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12263315/

相关文章:

mongodb - 获取时对集合中的文档进行排序

mongodb - 意外的 mongo 退出代码 100。正在重新启动

c# - 我可以在 Visual Studio/Code 中测试/运行 Unity C# 吗?

c# - 将从文本文件解析的 250 万行数据插入 Sql 服务器的最快方法是什么

c# - Azure WebJobs - 在哪里托管?它们作为长时间运行的进程安全吗?

javascript - 如何在子文档中填充模型实例数组? MongoDB Mongoose

java - 正确实现基于时间的对象存储

jquery - 使用 jQuery 从 CKEditor 的 iframe 中获取内容

WPF 加载序列化图像

c# - 程序已退出,代码为 -1073610751 (0xc0020001)