Я пытаюсь создать динамический ExpandoObject
. Я столкнулся с определенной проблемой.C# - Добавление объектов динамически (добавление динамических имен свойств)
Как я не знаю, что название этих различных свойств в моих объектах должно быть, я не могу сделать так:
var list = new ArrayList();
var obj = new ExpandoObject();
obj.ID = 1,
obj.Product = "Pie",
obj.Days = 1,
obj.QTY = 65
list.Add(obj);
Позвольте мне объяснить мою ситуацию: Я хотел бы получить данные из случайная БД (я не знаю, какой, но строя строку соединения из информации, которую я получаю от пользовательского интерфейса), поэтому я не знаю, какие данные мне нужно получить. Это может быть пример таблицы DB
ТАБЛИЦА Продажа
- ID: Int,
- продукта: NVARCHAR (100),
- Дни: Int,
- КОЛ: BigInt
Это может быть другой пример:
ТАБЛИЦА Foobar
- Id: ИНТ,
- Дни: ИНТ
- QTY: BIGINT
- PRODUCT_ID: INT
- department_id: INT
Как вы видите, я не знаю, как выглядит БД (это 100% анонимно, поэтому оно должно быть на 100% динамическим), а данные, которые я хочу вернуть, должны выглядеть как хорошо построенный JSON, например:
[
{
"ID": 1,
"Product": "Pie"
"Days": 1,
"QTY": 65
},
{
"ID": 2,
"Product": "Melons"
"Days": 5,
"QTY": 12
}
]
Или, с другой пример:
[
{
"ID": 1,
"Days": 2,
"QTY": 56,
"Product_Id": 5,
"Department_Id": 2
}
{
"ID": 2,
"Days": 6,
"QTY": 12,
"Product_Id": 2,
"Department_Id": 5
}
]
Я пробовал работать с этими ExpandoObject
с, но не могу заставить его работать, так как я не могу делать то, что показано в наверху этого вопроса (Я не знаю названий свойств). Есть ли способ для меня, чтобы сказать что-то вроде:
var obj = new ExpandoObject();
var propName = "Product";
var obj.propName = "Pie"
Console.WriteLine("Let's print!: " + obj.Product);
//OUTPUT
Let's print!: Pie
Кто-нибудь есть решение, OG просто руководство к структуре, которая может решить эту ситуацию?
какой язык вы используете? вы отметили C#, но часть вашего кода - Java (i.e System.out.printline). У .NET этого нет. –
Я не копировал вставить код. Я просто не могу вспомнить, как это называется на C#. Это чистый C# и ничего больше. Мои извинения. Будет исправлен – Detilium
возможный дубликат [установка C#/получение свойств класса по имени строки] (http://stackoverflow.com/questions/10283206/c-sharp-setting-getting-the-class-properties-by-string-name) – GSerg