1

のパラメータとして使用されている動的オブジェクトがありますApiController。ええ:

public class Shape
{
    public dynamic Coordinates { get; set; }

    public string Id { get; set; }

    public string Type { get; set; }
}

形状の座標は異なります。円には中心と半径があり、線には x1、y1、x2、y2 などがあります。

このオブジェクトを Mongo に保存しようとしています。

私が望んでいるのは:

{
    "Shapes": [
        {
            "Coordinates": {
                    "x1": 1,
                    "y1": 2,
                    "x2": 3,
                    "y2": 4
                }
            },
            "Type": "line"
        },
        {
            "Coordinates": "{ "x" : 10, "y" : 20, "r" : 30,},
            "Type": "circle"
        }
    ],
}

私が使うとき、私はBsonExtensionMethods.ToJson(coordinates)得る

{
    "Shapes": [
        {
            "Coordinates": "{ \"x1\" : [], \"y1\" : [], \"x2\" : [], \"y2\" : [] }",
            "Type": "line"
        }
    ],
}

私が使用すると、次のよう(JObject) coordinatesになります。

{
    "Shapes": [
        {
            "Coordinates": {
                "_t": "Newtonsoft.Json.Linq.JObject, Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed",
                "_v": {
                    "x1": [

                    ],
                    "y1": [

                    ],
                    "x2": [

                    ],
                    "y2": [

                    ]
                }
            },
            "Type": "line"
        }
    ],
}

文字列として保存することに頼る必要はありません。動的オブジェクトの値を格納したいことを .NET に納得させるにはどうすればよいですか?

4

2 に答える 2

1

動的型は、残念ながら今のところ MongoDB C# ドライバーではサポートされていません。ただし、 に含まれる予定v2.0です。

おそらくサーバー2.6に関連して、おそらく年末に向かっています。

ここでこの問題を追跡し、この機能に投票できます。 https://jira.mongodb.org/browse/CSHARP-539

于 2013-09-19T21:47:39.833 に答える