使用MongoDB C#驱动程序反序列化嵌套结构

时间:2014-06-03 20:41:03

标签: c# mongodb serialization

我没有问题地序列化这个Kontejner类。

public struct Dimenzije
{
    public double duzina, sirina, visina;
    public Dimenzije(double d, double s, double v)
    {
        duzina = d; sirina = s; visina = v;
    }
}

public class Kontejner
{

    [BsonId]
    public string Id { get; set; }

    public string Opis { get; set; }
    public Dimenzije Dimenzije { get; set; }

    [BsonElement]
    public double Zapremina
    {
        get
        {
            return Dimenzije.duzina * Dimenzije.sirina * Dimenzije.visina;
        }
    }

    public bool Cvrsti { get; set; }
    public bool Tecni { get; set; }
    public bool Rasuti { get; set; }
}

当我尝试反序列化它时,它无法反序列化Dimenzije字段。

我知道这是一个mapping问题,但我很想找到一个快速回答,我在MongoDB文档中没有看到它。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我将Dimenzije改为类而不是struct,如下所示:

public class Dimenzije
{
    public Dimenzije() { }
    public Dimenzije(double d, double s, double v)
    {
        duzina = d; sirina = s; visina = v;
    }
    public double duzina{get; set;}
    public double sirina{get; set;}
    public double visina{get; set;}

}

它按预期工作。注意Dimenzije()构造函数的存在!