Changeset 1419 for branches/New Persistence Exploration/Persistence/Persistence/Default/Decomposers/DictionaryDecomposer.cs
- Timestamp:
- 03/25/09 17:16:32 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/New Persistence Exploration/Persistence/Persistence/Default/Decomposers/DictionaryDecomposer.cs
r1405 r1419 3 3 using HeuristicLab.Persistence.Core; 4 4 using HeuristicLab.Persistence.Interfaces; 5 using System.Collections.Generic; 5 6 6 7 namespace HeuristicLab.Persistence.Default.Decomposers { … … 13 14 } 14 15 15 public IEnumerable DeCompose(object o) {16 public IEnumerable<Tag> DeCompose(object o) { 16 17 IDictionary dict = (IDictionary)o; 17 18 foreach ( DictionaryEntry entry in dict) { 18 yield return entry.Key;19 yield return entry.Value;19 yield return new Tag("key", entry.Key); 20 yield return new Tag("value", entry.Value); 20 21 } 21 22 } 22 23 23 public object Compose(IEnumerable o, Type t) { 24 IDictionary dict = (IDictionary)Activator.CreateInstance(t, true); 25 IEnumerator iter = o.GetEnumerator(); 24 public object CreateInstance(Type t) { 25 return Activator.CreateInstance(t, true); 26 } 27 28 public object Populate(object instance, IEnumerable<Tag> o, Type t) { 29 IDictionary dict = (IDictionary)instance; 30 IEnumerator<Tag> iter = o.GetEnumerator(); 26 31 while (iter.MoveNext()) { 27 object key = iter.Current ;32 object key = iter.Current.Value; 28 33 iter.MoveNext(); 29 object value = iter.Current ;34 object value = iter.Current.Value; 30 35 dict.Add(key, value); 31 36 }
Note: See TracChangeset
for help on using the changeset viewer.