gpt4 book ai didi

c# - 如何使用反射将属性的值设置为 null

转载 作者:太空宇宙 更新时间:2023-11-03 21:11:05 24 4
gpt4 key购买 nike

我想使用反射将 LastName 的值设置为 null。

public void SetPropertyValueToNull(Type t)
{
PropertyInfo prop = t.GetProperty("LastName");
prop.SetValue(t, null, null);
}

我将 typeof(User) 作为另一个类的参数传递,其中 User 是一个模型类,它具有 LastName 作为其中一个特性。它给我 对象与目标类型不匹配 错误。

我该如何解决这个问题?

最佳答案

It gives me Object does not match target type error.

SetValue 方法的第一个参数是要设置属性值的对象实例。

您正在将 t 本身作为类型为 Type 的第一个参数传递。您应该传递一个类型等于 t 的对象,例如User 在您的特定情况下。

您应该更改您的方法以接受对象实例而不是 Type,并且您可以使用它来获取其类型、获取属性然后设置其值。

所以你的方法应该是这样的:

public void SetPropertyValueToNull(object instance)
{
PropertyInfo prop = instance.GetType().GetProperty("LastName");
prop.SetValue(instance, null, null); //We need this overload for .NET < 4.5
}

此方法适用于任何具有名为 LastName 的可写属性的对象。

关于c# - 如何使用反射将属性的值设置为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37602212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com