public CloneDebugView(Type type) { var parser = new ObjectParser(type); var cloneTransform = new DeserializerTransform <object>((o, i) => clone[i](o)); var expressions = cloneTransform.Generate(parser, type); debugView = DebugViewHelper.ToString(expressions); }
public DeserializerDebugView(Type type) { var parser = ParserFactory <R> .Create(type); var expressions = new DeserializerTransform <R>( (r, i) => deserialize[i](r)) .Generate(parser, type); debugView = DebugViewHelper.ToString(expressions); }
Deserializer(Type type, IParser parser, IFactory factory, bool inlineNested) { DeserializerTransform <R> transform; if (factory != null) { transform = new DeserializerTransform <R>( (r, i) => deserialize[i](r), inlineNested, (t1, t2) => factory.CreateObject(t1, t2), (t1, t2, count) => factory.CreateContainer(t1, t2, count)); } else { transform = new DeserializerTransform <R>( (r, i) => deserialize[i](r), inlineNested); } deserialize = transform.Generate(parser, type).Select(lambda => lambda.Compile()).ToArray(); }
static Func <object, object>[] Generate(Type type, DeserializerTransform <object> transform) { var parser = new ObjectParser(typeof(SourceT)); return(transform.Generate(parser, type).Select(lambda => lambda.Compile()).ToArray()); }