Quiero establecer todas las propiedades DateTime de mi objeto a una fecha predeterminada. Sin embargo, si intento establecer los valores a través de la reflexión obtengo la excepción: "El objeto no coincide con el tipo de destino".C# Objeto de configuración Valores de propiedad DateTime a través de la reflexión
private void SetDefaultValues()
{
DateTime dt = DateTime.Parse("1/1/2000", new CultureInfo("en-US", true));
foreach (PropertyInfo p in this.GetType().GetProperties())
{
if (p.PropertyType.FullName == "System.DateTime")
{
p.SetValue(dt, typeof(DateTime), null);
}
}
}
¿Estoy haciendo/pensando en algo fundamentalmente incorrecto?
¿Cuál es la razón para configurar estos mediante la reflexión en lugar de directamente? Si tiene una tonelada que necesita establecerse, podría considerar ponerlos en una lista o un diccionario. –
¿Alguna razón para evitar las propiedades estándar con un getter que devuelve una clase var con su fecha predeterminada? –
He intentado hacer una funcionalidad similar en una pesadilla de herencia multinivel implementando un método de deserialización personalizado basado en la reflexión. ¡El rendimiento es terrible! Es mejor utilizar clases parciales y escribir un generador de código. (mi $ 0.02). –