示例#1
0
        /// <summary>
        /// 지정한 수형의 속성/필드 정보를 동적으로 접근하고 설정할 수 있는 <see cref="IDynamicAccessor"/>를 빌드합니다.
        /// </summary>
        /// <param name="type">대상 객체의 수형</param>
        /// <param name="mapOption">속성명/필드명 매핑 옵션</param>
        /// <returns></returns>
        public static IDynamicAccessor CreateDynamicAccessor(Type type, MapPropertyOptions mapOption)
        {
            type.ShouldNotBeNull("type");

            var key = new DynamicAccessorKey(type, mapOption);

            return(_accessors.GetOrAdd(key,
                                       (k) =>
                                       new TypeConvertableDynamicAccessor(k.TargetType, mapOption.SuppressException,
                                                                          mapOption.IgnoreCase)));
        }
示例#2
0
        /// <summary>
        /// 지정한 수형의 속성/필드 정보를 동적으로 접근하고 설정할 수 있는 <see cref="IDynamicAccessor{T}"/>를 빌드합니다.
        /// </summary>
        /// <typeparam name="T">대상 객체의 수형</typeparam>
        /// <param name="mapOption">속성명/필드명 매핑 옵션</param>
        /// <returns></returns>
        public static IDynamicAccessor <T> CreateDynamicAccessor <T>(MapPropertyOptions mapOption)
        {
            var targetType = typeof(T);

            var key = new DynamicAccessorKey(targetType, mapOption);

            return
                ((IDynamicAccessor <T>)_genericAccessors
                 .GetOrAdd(key,
                           (k) => new TypeConvertableDynamicAccessor <T>(mapOption.SuppressException,
                                                                         mapOption.IgnoreCase)));
        }