我了解我的类必须具有公共(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/