Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/17/11 11:22:15 (13 years ago)
Author:
epitzer
Message:

Streamline persistence reflection and store into persistable data structure for caching (#1530)

Location:
branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core
Files:
1 deleted
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Serializer.cs

    r5445 r6214  
    189189    /// </returns>
    190190    public IEnumerator<ISerializationToken> GetEnumerator() {
    191       var enumerator = Serialize(new DataMemberAccessor(rootName), obj);
     191      var enumerator = Serialize(rootName, obj);
    192192      if (isTestRun) {
    193193        return AddExceptionCompiler(enumerator);
     
    208208    private Stack<string> objectGraphTrace = new Stack<string>();
    209209
    210     private IEnumerator<ISerializationToken> Serialize(DataMemberAccessor accessor, object obj) {
    211 
    212       object value = accessor.Get(obj);
     210    private IEnumerator<ISerializationToken> Serialize(string name, object obj) {
     211
     212      object value = obj;
    213213      if (value == null)
    214         return NullReferenceEnumerator(accessor.Name);
     214        return NullReferenceEnumerator(name);
    215215      Type type = value.GetType();
    216216      if (obj2id.ContainsKey(value))
    217         return ReferenceEnumerator(accessor.Name, obj2id[value]);
     217        return ReferenceEnumerator(name, obj2id[value]);
    218218      bool emitTypeInfo = false;
    219219      if (!typeCache.ContainsKey(type)) {
     
    228228      }
    229229      try {
    230         objectGraphTrace.Push(accessor.Name);
     230        objectGraphTrace.Push(name);
    231231        IPrimitiveSerializer primitiveSerializer = configuration.GetPrimitiveSerializer(type);
    232232        if (primitiveSerializer != null)
    233233          return PrimitiveEnumerator(
    234             accessor.Name,
     234            name,
    235235            typeId,
    236236            primitiveSerializer.Format(value),
     
    240240        if (compositeSerializer != null)
    241241          return CompositeEnumerator(
    242             accessor.Name,
     242            name,
    243243            compositeSerializer.Decompose(value),
    244244            id,
     
    315315      if (metaInfo != null) {
    316316        foreach (var tag in metaInfo) {
    317           IEnumerator<ISerializationToken> metaIt = Serialize(new DataMemberAccessor(tag.Name), tag.Value);
     317          IEnumerator<ISerializationToken> metaIt = Serialize(tag.Name, tag.Value);
    318318          while (metaIt.MoveNext()) {
    319319            if (first) {
     
    330330      if (tags != null) {
    331331        foreach (var tag in tags) {
    332           IEnumerator<ISerializationToken> it = Serialize(new DataMemberAccessor(tag.Name), tag.Value);
     332          IEnumerator<ISerializationToken> it = Serialize(tag.Name, tag.Value);
    333333          while (it.MoveNext())
    334334            yield return it.Current;
Note: See TracChangeset for help on using the changeset viewer.