Ответ 1
dynamic d = new ExpandoObject();
((IDictionary<string,object>)d)["test"] = 1;
//now you have d.test = 1
У меня есть это
dynamic d = new ExpandoObject();
d.Name = attribute.QualifiedName.Name;
Итак, я знаю, что d будет иметь свойство Name. Теперь, если я не знаю имя свойства во время компиляции, как добавить это свойство в динамический. я нашел этот SO вопрос
Таким образом, существует такая сложная концепция связующих и т.д., для которых трудно получить в первую очередь. Какой простой способ сделать это?
dynamic d = new ExpandoObject();
((IDictionary<string,object>)d)["test"] = 1;
//now you have d.test = 1
Вот более чистый способ
var myObject = new ExpandoObject() as IDictionary<string, Object>;
myObject.Add("Country", "Ireland");
Вы также можете сделать следующее: -
Dictionary<string,object> coll = new Dictionary<string,object>();
coll.Add("Prop1","hello");
coll.Add("Prop2",1);
System.Dynamic.ExpandoObject obj = dic.Expando();
//You can have this ext method to better help
public static ExpandoObject Expando(this IEnumerable<KeyValuePair<string, object>>
dictionary)
{
var expando = new ExpandoObject();
var expandoDic = (IDictionary<string, object>)expando;
foreach (var item in dictionary)
{
expandoDic.Add(item);
}
return expando;
}