これを短く理解しやすくするために、http://mikaelkoskinen.net/mongodb-aggregation-framework-examples-in-c/は、私が達成しようとしていることの一部を示しています。この "ToDynamic" 呼び出しは、Aggregation から返される DateTime 値で中断します。
DateTime が必要であることを理解した上で、これを次のように変換することができました。
public static dynamic ToDynamic(this BsonDocument doc)
{
var json = doc.ToJson(new JsonWriterSettings { OutputMode = JsonOutputMode.TenGen });
dynamic obj = JToken.Parse(json);
return obj;
}
これにより、このオブジェクトを JContainer に正常に変換でき、次を使用して解析できました。
returnApp = BsonSerializer.Deserialize(service.apps.ToString(), typeof(MyMongoObject));
これは、ObjectId を取得して逆シリアル化するまで機能していました。この一連の操作は、返される ObjectId を解析できなかったため、"ToDynamic" 呼び出しで中断されました。
Aggregation Framework の結果を POCO に変換する、継続的に成功するエレガントな方法を見つけた人はいますか?