Beispiel #1
0
        private Expression <Func <BinaryReader, IData> > CreateReadMethod()
        {
            var reader = Expression.Parameter(typeof(BinaryReader), "reader");

            var dataType = typeof(Data <>).MakeGenericType(Type);

            return(Expression.Lambda <Func <BinaryReader, IData> >(
                       Expression.Label(Expression.Label(dataType), Expression.New(dataType.GetConstructor(new Type[] { Type }), PersistHelper.CreateReadBody(reader, Type, MembersOrder, false))),
                       reader
                       ));
        }
Beispiel #2
0
        public Expression <Func <BinaryReader, T> > CreateReadMethod()
        {
            var reader = Expression.Parameter(typeof(BinaryReader), "reader");

            return(Expression.Lambda <Func <BinaryReader, T> >(PersistHelper.CreateReadBody(reader, Type, MembersOrder, AllowNull), reader));
        }