Элементы списка <dynamic> имеют поля, но я не могу получить к ним доступ. Зачем?
Мне нужно перебратьList<dynamic>
объекты.
Все объекты списка имеют значения, но по какой-то причине я не могу получить доступ ни к одному из полей динамического объекта. Ниже приведен скриншот моего окна отладки:
Там вы можете увидеть объект содержит поля (такиекличка, Я бы, название, так далее).
Я попробовал оба, приведя это кIDictionary<string, object>
а такжеExpandoObject
, но безрезультатно. Я не сталкивался с такой вещью раньше: неспособность получить доступ к существующим полям вdynamic
объекткогда они существуют.
Что здесь не так?
Код бросаетMicrosoft.CSharp.RuntimeBinder.RuntimeBinderException
с сообщением о том, что{"'object' does not contain a definition for 'Name'"}.
Список был создан с добавлением объектов анонимного типа, например:
return new List<dynamic>(fields.Select(field => new
{
Id = field.Id,
Alias = field.Alias,
Name = field.Name,
Type = field.Type,
Value = field.Value,
SortOrder = field.SortOrder
}));
гдеfields
являетсяICollection<Field>
строго типизированная коллекция.