Сохранение ExpandoObject в MongoDB

У меня есть ExpandoObject с произвольным количеством свойств. Я хочу сохранить эти свойства в базе данных MongoDB как BsonDocument. Я пытаюсь сделать это с помощью следующего кода:

private BsonDocument GetPlayerDocument(IPlayer player)
{
    var ret = new BsonDocument();

    ret.Add("FirstName", player.FirstName).
        Add("LastName", player.LastName).
        Add("Team", player.Team).
        Add("Positions", new BsonArray(player.Positions));

    foreach (var stat in (IDictionary<String, Object>)player.Stats)
    {
        ret.Add(stat.Key, stat.Value.ToBson());
    }

    return ret;
}

Однако при вызове метода расширения ToBson () для объекта, Я получаю следующее исключение: WriteInt32 не может быть вызван, когда состояние: Initial.

Единственный известный мне WrtieInt32 - это статический метод класса Marshall. Я неправильно подхожу к этому?

5
задан i3arnon 30 December 2013 в 09:06
поделиться