- Timestamp:
- 05/17/11 11:22:15 (13 years ago)
- 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 189 189 /// </returns> 190 190 public IEnumerator<ISerializationToken> GetEnumerator() { 191 var enumerator = Serialize( new DataMemberAccessor(rootName), obj);191 var enumerator = Serialize(rootName, obj); 192 192 if (isTestRun) { 193 193 return AddExceptionCompiler(enumerator); … … 208 208 private Stack<string> objectGraphTrace = new Stack<string>(); 209 209 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; 213 213 if (value == null) 214 return NullReferenceEnumerator( accessor.Name);214 return NullReferenceEnumerator(name); 215 215 Type type = value.GetType(); 216 216 if (obj2id.ContainsKey(value)) 217 return ReferenceEnumerator( accessor.Name, obj2id[value]);217 return ReferenceEnumerator(name, obj2id[value]); 218 218 bool emitTypeInfo = false; 219 219 if (!typeCache.ContainsKey(type)) { … … 228 228 } 229 229 try { 230 objectGraphTrace.Push( accessor.Name);230 objectGraphTrace.Push(name); 231 231 IPrimitiveSerializer primitiveSerializer = configuration.GetPrimitiveSerializer(type); 232 232 if (primitiveSerializer != null) 233 233 return PrimitiveEnumerator( 234 accessor.Name,234 name, 235 235 typeId, 236 236 primitiveSerializer.Format(value), … … 240 240 if (compositeSerializer != null) 241 241 return CompositeEnumerator( 242 accessor.Name,242 name, 243 243 compositeSerializer.Decompose(value), 244 244 id, … … 315 315 if (metaInfo != null) { 316 316 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); 318 318 while (metaIt.MoveNext()) { 319 319 if (first) { … … 330 330 if (tags != null) { 331 331 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); 333 333 while (it.MoveNext()) 334 334 yield return it.Current;
Note: See TracChangeset
for help on using the changeset viewer.