/// <summary> /// IDataReader의 컬럼명의 값을 가져옵니다. 없으면 <paramref name="valueFactory"/>의 반환값을 반환합니다. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="reader"></param> /// <param name="index"></param> /// <param name="valueFactory"></param> /// <returns></returns> public static T AsValue <T>(this IDataReader reader, int index, Func <T> valueFactory = null) { valueFactory = valueFactory ?? (() => default(T)); return (With.TryFunction(() => reader.IsDBNull(index) ? valueFactory() : ConvertTool.AsValue <T>(reader.GetValue(index)), exceptionAction: ex => { if (IsInfoEnabled) { log.Info("IDataReader로부터 값을 얻는데 실패했습니다. index=[{0}]", index); log.Info(ex); } })); }