コード例 #1
0
ファイル: UntaggedParser.cs プロジェクト: zhenqinshang/bond
        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
ファイル: UntaggedParser.cs プロジェクト: zhipenghan/bond
        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()));
        }