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);
 }
            public SerializerHelper(ObjectParser parser, Type type, bool inlineNested)
            {
                expressions = SerializerGeneratorFactory <object, W> .Create((o, w, i) => serialize[i](o, w), type, inlineNested).Generate(parser);

                serialize = expressions.Select(lambda => lambda.Compile()).ToArray();
            }