Esempio n. 1
0
        public Expression <Func <T, int> > CreateGetSizeMethod()
        {
            var obj = Expression.Parameter(typeof(T), "obj");

            var body = PersistSizeHelper.CreateSizeBody(obj, CharSize, MembersOrder, AllowNull);

            return(Expression.Lambda <Func <T, int> >(body, obj));
        }
Esempio n. 2
0
        public Expression <Func <IData, int> > CreateGetSizeMethod()
        {
            var idata = Expression.Parameter(typeof(IData), "idata");

            var dataType  = typeof(Data <>).MakeGenericType(Type);
            var dataValue = Expression.Variable(Type, "dataValue");

            var assign = Expression.Assign(dataValue, Expression.Convert(idata, dataType).Value());

            var body = PersistSizeHelper.CreateSizeBody(dataValue, CharSize, MembersOrder, AllowNull);

            return(Expression.Lambda <Func <IData, int> >(Expression.Block(new ParameterExpression[] { dataValue }, assign, body), idata));
        }