public void Apply(object field) { if (((IReflectField)field).IsStatic()) { return; } if (this._enclosing._enclosing._ignoreTransient && ((IReflectField)field).IsTransient ()) { return; } IReflectClass fieldType = ((IReflectField)field).GetFieldType(); List4 path = new List4(parentPath, ((IReflectField)field)); Prototypes.IntegerConverter converter = Prototypes.IntegerConverterforClassName(claxx .Reflector(), fieldType.GetName()); if (converter != null) { int id = ++this._enclosing.intIdGenerator; object integerRepresentation = converter.FromInteger(id); if (!Prototypes.TrySetField(((IReflectField)field), @object, integerRepresentation )) { return; } this._enclosing._fieldsByIntId.Put(id, new Pair(integerRepresentation, path)); return; } if (!fieldType.IsPrimitive()) { object identityInstance = fieldType.NewInstance(); if (identityInstance == null) { return; } if (!Prototypes.TrySetField(((IReflectField)field), @object, identityInstance)) { return; } this._enclosing._fieldsByIdentity.Put(identityInstance, path); this._enclosing.Analyze(identityInstance, claxx, depth - 1, path); } }