public static void Main()
var str = DateTime.Now.ToString();
var dt = ConvertTo<DateTime>("fieldName", typeof(string), str);
private static T ConvertTo<T>(string fieldName, Type fieldType, object @object)
if (fieldType.IsAssignableFrom(typeof(T)))
if (fieldType.IsAssignableFrom(typeof(DateTime)))
var value = (DateTime)@object;
return value != default(DateTime) ? (T)@object : default(T);
if (fieldType.IsAssignableFrom(typeof(int)))
var value = (int)@object;
return value != default(int) ? (T)@object : default(T);
throw new InvalidOperationException(string.Format("{0} type is not assignable from {1}.", fieldName, typeof(T)));