//Sorry,下面这行原来是错的..
Type property = entity.GetType().GetProperty("ValidDate").PropertyType;
//PropertyInfo property = entity.GetType().GetProperty("ValidDate");
if(property.IsGenericType)
{
if(property.GetGenericTypeDefinition()==typeof(Nullable<>)
{
//是 **? 类型
Type originalType = property.GetGenericArguments()[0];
if(originalType == typeof(int)
{
// int?
}
else if(originalType == typeof(DateTime)
{
// DateTime?
}
// ...
}
}
关于范型与反射,我做了张表,也许对你有用:
http://www.cnblogs.com/deerchao/archive/2008/06/16/1222936.html
转换类型的时候try catch下把
value应该是个object的
应该没有办法可以判断除了 try catch
用property.PropertyType进行判断,看看是不是System.Nullable'1[System.DateTime],就可以了。
deerchao 可能漏写了,应该是这样 //刚刚看到deerchao 已经更正了~_~
PropertyInfo property = entity.GetType().GetProperty("ValidDate");
if (property.PropertyType.IsGenericType)
{
if (property.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>))
{
if (property.PropertyType.GetGenericArguments()[0] == typeof(DateTime))
{
}
}
}
我觉得这样就行
if(x==null)
return true;
DateTime dt;
if(DateTime.TryParse(x ,out dt))
return true;
return false;