/// <summary> /// /// </summary> /// <param name="value">要转换的值</param> /// <param name="conversionType">要转换成的类型</param> /// <returns></returns> private static object ChangeType(object value, Type conversionType) { if (conversionType.IsGenericType && conversionType.GetGenericTypeDefinition().Equals(typeof(Nullable<>))) { if (value != null) { NullableConverter nullableConverter = new NullableConverter(conversionType); conversionType = nullableConverter.UnderlyingType; } else { return null; } } return Convert.ChangeType(value, conversionType); }
反射 BindingFlags.IgnoreCase 的用法
反射属性名称,属性名称不区别大小写
PropertyInfo pi = typeof(object).GetProperty("PropertyName", BindingFlags.IgnoreCase);
这样是获取不出来的,得加上 BindingFlags.Public | BindingFlags.Instance
如下这样就可以了。
PropertyInfo info = obj.GetType().GetProperty(dc.ColumnName, BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance | BindingFlags.GetProperty);