Giriş
dynamic ve ExpandoObject sıklıkla beraber kullanılırlar.
Constructor
Şöyle yaparız.
Kodlarken yeni alanlar eklemek mümkün. Şöyle yaparız.
dynamic ve ExpandoObject sıklıkla beraber kullanılırlar.
Constructor
Şöyle yaparız.
dynamic obj = new ExpandoObject();
Şöyle yaparız.IDictionary<string, object> obj = new ExpandoObject();
Şöyle yaparız.dynamic obj = new ExpandoObject() as IDictionary<string, Object>;
Kodlarken Alan EklemekKodlarken yeni alanlar eklemek mümkün. Şöyle yaparız.
dynamic obj = new ExpandoObject();
obj.MyInt = 3;
obj.MyString = "Foo";
Daha sonra o alana Property gibi erişilebilir.var val = obj.MyInt;
Add metodu - Çalışma Sırasında Alan Eklemek
Key olarak string, Value olarak bir object veririr. Eğer nesnemiz IDictionary tipinde değilse cast ederek şöyle yaparız.dynamic obj = new ExpandoObject();
((IDictionary<string, object>)obj).Add(...,...);
Eğer IDictionary tipindeyse şöyle yaparız.dynamic obj = new ExpandoObject() as IDictionary<string, Object>;
obj.Add(...,...);
Bir listeyi dolaşarak tüm elemanları alan olarak eklemek için şöyle yaparız.
Add metodu ile aynıdır. Şöyle yaparız.var list = new List<string>() { "str1", "str2" };
ExpandoObject obj = new ExpandoObject();
var store = (IDictionary<string, object>)obj;
list.ForEach(x => store.Add(x, x));
dynamic lst = obj;
var val = lst.str1; // Test
[] operator - Çalışma Sırasında Alan Eklemekstring[] items = ...;
IDictionary<string, object> result = new ExpandoObject();
result[items[0]] = items[1];
Hiç yorum yok:
Yorum Gönder