C# 通过反射设置对象 DateTime 属性值
我想将对象的所有 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);
}
}
}
我在做/想一些根本不正确的事情吗?
I want to set all DateTime properties of my object to a default date. However, if I try do set the values through reflection I get the exception: "Object does not match target type."
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);
}
}
}
Am I doing / thinking something fundamentally incorrect?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
参数需要调整;第一个是目标 - 我假设这里是
this
; 第二个是值 (dt
)。最后一个与“索引器”有关 - 这可能不适用于此处。Parameters need adjusting; the first is the target - which I assume is
this
here; the second is the value (dt
). The last relates to "indexers" - which probably doesn't apply here.