mk
unread,Apr 25, 2013, 4:54:23 AM4/25/13You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Witam,
Mam następującą kolekcję:
Dictionary<string, object> dict = new Dictionary<string, object>();
dict.add("root.test.1.value.one", 10);
dict.add("root.test.1.value.two", 1);
dict.add("root.test.1.value.three", 2);
dict.add("root.test.1.value.four", 3);
dict.add("root.test.2.value.one", 4);
dict.add("root.test.2.value.two", 5);
dict.add("root.test.2.value.three", 6);
dict.add("root.test.2.value.four", 7);
dict.add("root.value.one", 8);
dict.add("root.value.two", 11);
dict.add("root.value.three", 22);
dict.add("root.value.four", 33);
dict.add("root.data.1.object.amount", 78);
dict.add("root.data.1.object.vat", 22);
dict.add("root.data.2.object.amount", 34);
dict.add("root.data.2.object.vat", 234);
dict.add("root.data.3.object.amount", 23423);
dict.add("root.data.3.object.vat", 2341);
Jak powyżej widać klucz to struktura drzewiasta.
Teraz chciałbym napisać jakąś metodę, która przerobi mi powyższą
kolekcję na objekt w taki sposób żebym mógł odwoływać się do niego w
następujący sposób:
MyNewObject = SomeMagicMethod(dict);
Console.WriteLine(MyNewObject.root.test[1].value.one); //print 10
Console.WriteLine(MyNewObject.root.test[1].value.two); //print 1
Console.WriteLine(MyNewObject.root.test[2].value.three); //print 6
Console.WriteLine(MyNewObject.root.test[2].value.four); //print 7
Console.WriteLine(MyNewObject.root.value.one); //print 8
Console.WriteLine(MyNewObject.root.data[1].object.amount); //print 78
Console.WriteLine(MyNewObject.root.data[1].object.vat); //print 22
Console.WriteLine(MyNewObject.root.data[2].object.amount); //print 34
Teraz zastanawiam się jak najlepiej/najprościej napisać tą metodę:
SomeMagicMethod ? Może mi coś podpowiecie? Myślę że typy dynamiczne by
się tu przydały ale jeszcze z tego nie korzystałem. Jakiś toporny sposób
na pewno znajdę ale mam nadzieje że da się to zrobić jakoś lepiej.
Pozdrawiam
Mariusz