Проверьте определение ExpandoObject
:
public sealed class ExpandoObject : IDynamicMetaObjectProvider,
IDictionary<string, object>, ICollection<KeyValuePair<string, object>>,
IEnumerable<KeyValuePair<string, object>>, IEnumerable, INotifyPropertyChanged
Как вы можете видеть, один из интерфейсов реализованы по классу IDictionary<string, object>
. Таким образом, вы можете сделать это:
var dict = (IDictionary<string, object>)obj;
dict["Name"] = "Reza";
var name = dict["Name"] as string;
Обратите внимание, что если все, что вам нужно, это поведение, где доступ к элементам словаря-стиль, используя ExpandoObject
не является необходимым; простой Dictionary<string,object>
будет делать все отлично.
'ExapnadoObject' или' ExpandoObject'? – Eser
Просто добавьте его как 'IDictionary' –