Сериализация драйверов MongoDB C# с динамическими объектами

у меня есть модель, которая выглядит так:

public class Record
{
    public Record()
    {
        Created = DateTime.Now;
    }

    public string Id { get; set; }

    public string ApplicationId { get; set; }

    public Dictionary<string, dynamic> Values { get; set; }

    public DateTime Created { get; set; }
}

это хранится в MongoDB с помощью драйвера MongoDB C#. Это отлично работает, когда я делаю такие вещи, как:

{
    applicationId: "52f52db8008a280f583c9ff6",
    values: {
     "52f9410a324e68055f39f8c0": 245234
     "52f941096d82a531e700e56b": "sdfasdf"
     "52fa4a96e0b2e0d4e61d0a03": "52fa4a9b91c477e367ab99e6"
    }
}

но когда я пытаюсь добавить массив строк типа:

{
    applicationId: "52f52db8008a280f583c9ff6",
    values: {
     "52f9410a324e68055f39f8c0": 245234
     "52f941096d82a531e700e56b": "sdfasdf"
     "52fa4a96e0b2e0d4e61d0a03": "52fa4a9b91c477e367ab99e6"
     "52fa85ea16f04a6151e4ea51": [ "52fa85f2d2ffa4cbdcf538e8", "52fa85f205505f671f3d0d7b"]
    }
}

это дает мне следующую ошибку, когда я пытаюсь сделать GET на документе:

An exception of type 'System.IO.FileFormatException' occurred in MongoDB.Driver.dll but was not handled in user code
Additional information: An error occurred while deserializing the Values property of class API.Models.Record.Record: Cannot create an abstract class.

если я посмотрю на базу данных, она сохранила его, но его действительно фанк выглядит:

enter image description here

у кого-нибудь опыт работы с dynamics и mongo?

1 ответов


обновление: dynamic теперь поддерживается v2.0 водитель.


вы не можете использовать dynamic и 'ы на C#. Вот это с Jira билет об этом.

описание:

мы еще не определили, в какой версии мы могли бы добавить поддержку динамических типов C#. Этот билет-это место, где можно высказаться о желательности и/или проголосовать за нее.