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

参数需要调整;第一个是目标——我假设它就在this这里;第二是值(dt)。最后一个与“索引器”有关 - 这可能不适用于这里。

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