Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/26/09 17:56:55 (15 years ago)
Author:
epitzer
Message:

Almost complete solution for correctly handling parent references. (#506)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/New Persistence Exploration/Persistence/Persistence/Default/Decomposers/StorableDecomposer.cs

    r1423 r1434  
    2828
    2929    public object Populate(object instance, IEnumerable<Tag> objects, Type type) {           
    30       var memberDict = new Dictionary<string, object>();     
     30      var memberDict = new Dictionary<string, Tag>();     
    3131      IEnumerator<Tag> iter = objects.GetEnumerator();     
    3232      while (iter.MoveNext()) {
    33         memberDict.Add((string)iter.Current.Name, iter.Current.Value);
     33        memberDict.Add((string)iter.Current.Name, iter.Current);
    3434      }     
    3535      foreach (var mapping in StorableAttribute.GetAutostorableAccessors(instance)) {
    36         if ( memberDict.ContainsKey(mapping.Key) )
    37           mapping.Value.Set(memberDict[mapping.Key]);
    38         else if ( mapping.Value.DefaultValue != null )
     36        if (memberDict.ContainsKey(mapping.Key)) {
     37          memberDict[mapping.Key].SafeSet(mapping.Value.Set);
     38        } else if (mapping.Value.DefaultValue != null) {
    3939          mapping.Value.Set(mapping.Value.DefaultValue);
     40        }
    4041      }
    4142      return instance;
Note: See TracChangeset for help on using the changeset viewer.