C# 按列表中的索引设置类中的属性值

C# 按列表中的索引设置类中的属性值,c#,C#,嘿,我正试图在我拥有的某个类中为列表中的项设置值 我知道酒店的名称和类型是布尔 我试过了 我收到了这个错误 System.Reflection.TargetException 我做错了什么? 谢谢你的建议 public partial class Users { public List<Member> Members { get; set; } = new List<Member>(); } public partial class SellerSettings

嘿,我正试图在我拥有的某个类中为列表中的项设置值

我知道酒店的名称和类型是布尔

我试过了

我收到了这个错误

System.Reflection.TargetException

我做错了什么? 谢谢你的建议

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);
    }
}