任意の数のプロパティを持つ 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() を呼び出すと、次の例外が発生します。State が Initial の場合、WriteInt32 を呼び出せません。
私が知っている唯一の WrtieInt32 は、Marshall クラスの静的メソッドです。私はこれに間違って近づいていますか?