C# 按列表中的索引设置类中的属性值
嘿,我正试图在我拥有的某个类中为列表中的项设置值 我知道酒店的名称和类型是布尔 我试过了 我收到了这个错误 System.Reflection.TargetException 我做错了什么? 谢谢你的建议C# 按列表中的索引设置类中的属性值,c#,C#,嘿,我正试图在我拥有的某个类中为列表中的项设置值 我知道酒店的名称和类型是布尔 我试过了 我收到了这个错误 System.Reflection.TargetException 我做错了什么? 谢谢你的建议 public partial class Users { public List<Member> Members { get; set; } = new List<Member>(); } public partial class SellerSettings
public partial class Users
{
public List<Member> Members { get; set; } = new List<Member>();
}
public partial class SellerSettings
{
public bool MyProp { get; set; };
}
SetValue的第一个参数不是该属性的名称(该属性的名称已由对propInfo的引用隐式指定)。第一个参数应该是实现propInfo的类的实例。根据您的示例不确定,但它可能是
SellerSettings
的一个实例,如下所示:
public async void ChangeStatus(int userId, string column, int status)
{
var member = Users.Members[Users.Members.FindIndex(c => c.Id == userId)];
var settings = member.SellerSettings;
var propInfo = settings.GetType().GetProperty(column);
if (propInfo != null)
{
propInfo.SetValue(settings, Convert.ToBoolean(status), null);
}
}
在第二个示例中,
Users.Members
似乎试图调用静态属性。但这个属性不是静态的。你得到了什么错误?@JohnWu错误是对象与目标类型不匹配道具的名称是100%正确的,也许我对道具的索引是错误的?你从哪里得到的错误?你有一个名为Users
的Users
类型的属性吗?Users是一个保存成员列表的类。我将编辑问题并将其添加到数据库中。哦,我现在明白了,我需要获取成员,然后在设置中运行它。非常感谢,先生!
public async void ChangeStatus(int userId, string column, int status)
{
var member = Users.Members[Users.Members.FindIndex(c => c.Id == userId)];
var settings = member.SellerSettings;
var propInfo = settings.GetType().GetProperty(column);
if (propInfo != null)
{
propInfo.SetValue(settings, Convert.ToBoolean(status), null);
}
}