Actualmente uso de este método de extensión de conversión práctica de hacer conversiones entre tipos:¿Cómo puedo solucionar esto para hacer la conversión genérica a Nullable <T>?
public static T To<T>(this IConvertible obj)
{
return (T)Convert.ChangeType(obj, typeof(T));
}
Sin embargo, no le gusta la conversión de los valores válidos para anulable, por ejemplo, esta falla:
"1".To<int?>();
Obviamente , 1 se convierte fácilmente en una, pero se pone el error (int?):
Invalid cast from 'System.String' to 'System.Nullable`1[[System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'.
Este es un ejemplo simplificado, obviamente, en la realidad que nos soy ing que haga las conversiones de tipos de cadenas de este modo:
packageDb.Quantity = package.package.ElementDeep(Namespace + "PackageQuantity", Namespace + "ActualQuantity", Namespace + "Quantity").ValueOrNull().To<int?>();
Si Convert.ChangeType no le gusta anulable, cualquier persona tiene grandes ideas?
Ver mi pregunta: http://stackoverflow.com/questions/773078/c-convert-string-to-nullable-type-int-double-etc –