7

オブジェクトのすべての 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);
        }
    }
}

私は根本的に間違ったことをしている/考えていますか?

4

1 に答える 1

9

パラメータを調整する必要があります。1つ目はターゲットです-thisここにあると思います。2 番目は値 ( dt) です。最後は「インデクサー」に関するもので、おそらくここでは当てはまりません。

p.SetValue(this, dt, null);
于 2011-11-02T22:55:31.073 に答える