Я нашел решение этого вопроса во время написания, но я все еще публикую его, чтобы, если у кого-то возникла эта проблема в будущем, он мог найти это
Этот вопрос относится к этому вопросу , так как это моя последняя попытка решить мою проблему.
Короче говоря:
в моем .Net MVC Project я получаю Json с некоторыми непредсказуемыми данными (массивом :). Я могу декодировать этот Json, используя
dynamic dynamicObj =System.Web.Helpers.Json.Decode(await someAPIcall(someParameters));
И я могу исследовать данные, наведя на них курсор в VisualStudio (хотя это гораздо более сложная структура, чем отправляемый json), а также в nuget ObjectDumper можно отобразить все свойства.
Теперь, как я могу получить доступ к этим данным в моем коде?
Я пробовал следующее:
Доступ к свойствам как к любому объекту путем объединения имен свойств, таких как:
dynamicObj._values[1].Key
который, следуя пути в проводнике мыши (не знаю его имени), должен дать мне простую строку. Но я получаю эту ошибку:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform
runtime binding on a null reference
Итак, я попытался выяснить, может ли имя как-то отличаться в этом объекте, поэтому я попытался:
foreach (string name in dynamicObj.getDynamicMemberNames())
{
Debug.WriteLine(name);
}
Это метод DynamicJsonObject , но возникает эта ошибка:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform
runtime binding on a null reference
когда значение dynamicObj не равно нулю.
Чего мне не хватает?