Десериализовать вложенную структуру с драйвером MongoDB C #

1

Я сериализую этот класс 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. Заранее спасибо.

Теги:
serialization

1 ответ

1

Я изменил Dimenzije как класс вместо структуры, вот так:

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() !

  • 0
    Надеюсь, что давление сброшено. Congrats. :)
  • 0
    Кроме того, вам не нужен этот конструктор. Если ваш конструктор ничего не делает, вам даже не нужно его писать. Пустой конструктор создается по умолчанию в C #.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню