У меня есть динамический объект, который используется как параметр на ApiController
. й:Вставить динамический объект в MongoDB в .NET
public class Shape
{
public dynamic Coordinates { get; set; }
public string Id { get; set; }
public string Type { get; set; }
}
Координаты для любой формы различна, круг будет иметь центр и радиус, линия имеет x1, y1, x2, y2 и т.д.
Я пытаюсь сохранить этот объект в Монго.
То, что я надеюсь на это:
{
"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, что я хочу хранить значения динамического объекта?
Не могли бы вы вставить код, который создает и заполняет, и экземпляр класса Shape? –