private T create <T>(DataRow dr, List <ResultCmd> cmds) { T t = Activator.CreateInstance <T>(); foreach (ResultCmd c in cmds) { PropertyInfo pi; try { pi = typeof(T).GetProperty(c.Property); } catch (Exception) { throw new Exception(String.Format("{0} 对象没有属性 {1}", typeof(T).ToString(), c.Property)); } ITypeHandler typeHandler = c.TypeHandler; if (typeHandler == null) { typeHandler = TypeHandlerFactory.get(pi.PropertyType); } if (typeHandler != null) { PropertyUtil.setValue(t, pi, typeHandler.getResult(dr, c.ColumnName)); } } return(t); }
private ITypeHandler getTypeHandler(Dictionary <String, ITypeHandler> typeHanlders, String propName, Type type) { if (typeHanlders != null || typeHanlders.Count > 1) { try { return(typeHanlders[propName]); } catch (Exception) { } } return(TypeHandlerFactory.get(type)); }