Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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());
        }