Я делаю некоторую работу с отражением. Мой API получает некоторый JSON, и я хотел бы преобразовать его в список типа, который он есть.Преобразование из общего списка в определенный список с использованием отражения
В
общественного переназначения BOOL TrySetMember (SetMemberBinder вяжущее, значение объекта)
У меня есть кэшированный список свойств, и один из них является списком. Я знаю, что это правда, потому что я могу видеть из prop.PropertyType.
Я хотел был бы преобразовать это свойство в фактический список, типа Foo, но я не могу этого сделать. Лучшее, что я мог получить, это Список. value - это json-массив Foo (поэтому кто-то отправил мне JSON в массив [] как Foo).
//this works, and listOfObjects is of type List<Foo> when I go deep into the quick watch of it, but it's still a list<Object> in the end.
var listOfObjects = JsonConvert.DeserializeObject<List<Object>>(value.ToString());
Я могу прямо бросить СПИСОК_ОБЪЕКТЫ как список, и это работает, но проблема Foo может быть любым типом, например бар также возможен. Так что есть бесконечные возможные типы, вот что я говорю. Есть ли способ, которым я могу как-то сказать, что это Foo, когда я делаю актеры? Я могу получить тип «Foo» из моей информации о свойствах? Я всегда могу найти тип, который я хочу преобразовать, используя информацию о свойствах, но что тогда? Я не могу сделать трансляцию с переменной справа?
Спасибо!
У вас есть контроль над кодировкой и расшифровкой json? Если это так, вы можете использовать библиотеку Json, которая поддерживает подсказки типа. Затем, когда вы Deserialize, вы получаете, какой бы тип объекта не был сериализован в первую очередь. – yoyo