示例#1
0
        public Expression Bonded(ValueHandler handler)
        {
            if (schema.IsBonded)
            {
                return(handler(reader.ReadMarshaledBonded()));
            }

            var newBonded = bondedFactory(reader.Param, Expression.Constant(schema));

            return(Expression.Block(
                       handler(newBonded),
                       SkipStruct()));
        }
示例#2
0
        public Expression Bonded(ValueHandler handler)
        {
            if (schema.IsBonded)
            {
                return(handler(reader.ReadMarshaledBonded()));
            }

            var bondedCtor = typeof(BondedVoid <>).MakeGenericType(typeof(R))
                             .GetConstructor(typeof(R), typeof(RuntimeSchema));

            return(Expression.Block(
                       handler(Expression.New(bondedCtor, reader.Param, Expression.Constant(schema))),
                       SkipStruct()));
        }