Type t = p.PropertyType;
if (typeof(decimal) == t || typeof(decimal?) == t)
{
ret = decimal.Parse(v);
}
else if (typeof(int) == t || typeof(int?) == t)
{
ret = int.Parse(v);
}
else if (typeof(long) == t || typeof(long?) == t)
{
ret = long.Parse(v);
}
else if (typeof(DateTime) == t)
{
ret = DateTime.Parse(v);
}
else if (typeof(bool) == t)
{
}
else
{
ret = v;
}