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