/// <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))); }
/// <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))); }