C# 通过反射设置对象 DateTime 属性值

发布于 2024-12-13 04:26:50 字数 480 浏览 1 评论 0原文

我想将对象的所有 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沐歌 2024-12-20 04:26:50

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

p.SetValue(this, dt, null);

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.

p.SetValue(this, dt, null);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文