Пример #1
0
        public PropertyMapper(Expression <Func <TModel, TProperty> > expression)
        {
            var member = expression.Body as MemberExpression;

            if (member == null)
            {
                throw new InvalidOperationException("无效的属性访问表达式" + expression);
            }

            _member      = ((MemberExpression)expression.Body).Member;
            _valueReader = CellValueReader.Build <TProperty>();
            _displayName = ExtraceDisplayName(_member);
            _propertyMap = CreatePropertyMapAction(expression);
        }
Пример #2
0
        /// <summary>
        /// Sets the reader of the property map to use a custom cell value reader.
        /// </summary>
        /// <typeparam name="T">The type of the property map.</typeparam>
        /// <param name="propertyMap">The property map to use.</param>
        /// <param name="reader">The custom reader to use.</param>
        /// <returns>The property map on which this method was invoked.</returns>
        public static T WithReader <T>(this T propertyMap, ICellValueReader reader) where T : ISinglePropertyMap
        {
            if (reader == null)
            {
                throw new ArgumentNullException(nameof(reader));
            }

            if (propertyMap.CellReader is OptionalCellValueReader optionalCellValueReader)
            {
                optionalCellValueReader.InnerReader = reader;
            }
            else
            {
                propertyMap.CellReader = reader;
            }

            return(propertyMap);
        }