Пример #1
0
 public SerializerHelper(ObjectParser parser, Type type, bool inlineNested)
 {
     serialize = SerializerGeneratorFactory <object, W> .Create(
         (o, w, i) => serialize[i](o, w), type, inlineNested)
                 .Generate(parser)
                 .Select(lambda => lambda.Compile()).ToArray();
 }
Пример #2
0
            Action <R, FPW>[] GenerateFirstPass <S>(S schema, IParser parser)
            {
                parser = parser ?? ParserFactory <R> .Create(schema);

                return(SerializerGeneratorFactory <R, FPW> .Create(
                           (r, w, i) => firstPassTranscode.Value[i](r, w), schema)
                       .Generate(parser)
                       .Select(lambda => lambda.Compile()).ToArray());
            }
Пример #3
0
        Transcoder(RuntimeSchema schema, IParser parser)
        {
            var serializerTransform = SerializerGeneratorFactory <R, W> .Create(
                (r, w, i) => transcode[i](r, w), schema);

            var expressions = serializerTransform.Generate(parser);

            debugView = DebugViewHelper.ToString(expressions);
        }
Пример #4
0
        /// <summary>
        /// Create a serializer for specified type
        /// </summary>
        /// <param name="type">Type representing a Bond schema</param>
        public Serializer(Type type)
        {
            var parser = new ObjectParser(type);

            serialize = SerializerGeneratorFactory <object, W> .Create(
                (o, w, i) => serialize[i](o, w), type)
                        .Generate(parser)
                        .Select(lambda => lambda.Compile()).ToArray();
        }
Пример #5
0
        Action <R, W>[] Generate <S>(S schema)
        {
            var parser = ParserFactory <R> .Create(schema);

            return(SerializerGeneratorFactory <R, W> .Create(
                       (r, w, i) => transcode[i](r, w), schema)
                   .Generate(parser)
                   .Select(lambda => lambda.Compile()).ToArray());
        }
Пример #6
0
        public SerializerDebugView(Type type)
        {
            var parser = new ObjectParser(type);
            var serializerTransform = SerializerGeneratorFactory <object, W> .Create(
                (o, w, i) => serialize[i](o, w), type);

            var expressions = serializerTransform.Generate(parser);

            debugView = DebugViewHelper.ToString(expressions);
        }
Пример #7
0
 public TwoPassSerializerHelper(ObjectParser parser, Type type, bool inlineNested) :
     base(parser, type, inlineNested)
 {
     firstPassSerialize = new Lazy <Action <object, FPW>[]>(() => {
         return(SerializerGeneratorFactory <object, FPW> .Create(
                    (o, w, i) => firstPassSerialize.Value[i](o, w), type, inlineNested)
                .Generate(parser)
                .Select(lambda => lambda.Compile()).ToArray());
     }, LazyThreadSafetyMode.PublicationOnly);
 }