使用 MongoDB C# 驱动程序反序列化嵌套结构 [英] Deserialize a nested struct with MongoDB C# driver

查看:38
本文介绍了使用 MongoDB C# 驱动程序反序列化嵌套结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我毫无问题地序列化了这个 Kontejner 类.

I serialize this Kontejner class without problems.

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 字段.

When I try to deserialize it, it can't deserialize the Dimenzije field.

我知道这是一个 mapping 问题,但我迫不及待地想快速找到答案,而且我在 MongoDB 文档中没有看到它.提前致谢.

I know this is a mapping issue, but I'm pressured into finding a quick answer, and I don't see it in MongoDB docs. Thanks in advance.

推荐答案

我把 Dimenzije 改成了一个类而不是结构体,像这样:

I changed Dimenzije to be a class instead of struct, like this:

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() 构造函数的存在!

It works as expected. Notice the presence of Dimenzije() constructor!

这篇关于使用 MongoDB C# 驱动程序反序列化嵌套结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆