C # Установка значений свойств объекта DateTime через отражение - PullRequest
7 голосов
/ 03 ноября 2011

Я хочу установить для всех свойств DateTime моего объекта дату по умолчанию.Однако, если я пытаюсь установить значения с помощью отражения, я получаю исключение: «Объект не соответствует типу цели».

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);
        }
    }
}

Я делаю / думаю что-то принципиально неправильное?

1 Ответ

9 голосов
/ 03 ноября 2011

Параметры нуждаются в корректировке;во-первых, это target - я полагаю, здесь this; секунда - это значение (dt).Последнее относится к «индексаторам» - что, вероятно, здесь не применимо.

p.SetValue(this, dt, null);
...