2

在 Entities 文件夹中,我们有不同类型的实体,例如 User.cs。在 User.cs 中,我们有这个实体的属性,例如:

    public string UserName { get; set; }
    public string ProfileImagePath { get; set; }

除了像 User.UserName 一样直接调用这些属性之外,还有其他方法可以访问这些属性吗?

如果我们可以在不知道属性名称的情况下循环浏览属性列表,那就太好了。我们正在考虑对于实体中的第一个属性可能类似于 User[0]。谢谢!

4

2 回答 2

3

您可以使用反射:

foreach(var property in entity.GetType().GetProperties()){
    var value = property.GetValue(entity, null);
    // do whatever you want to do with the value
}

您可能必须添加一些BindingFlags类似BindingFlag.InstanceBindingFlags.Public(我不太确定默认值)。如果是这种情况,请使用entity.GetType().GetProperties(BindingFlag.Instance || BindingFlags.Public)

于 2012-06-25T00:35:01.330 回答
1

你可能想看看反射。像这样的东西可以让你枚举yourInstance类对象的所有字符串属性值A

foreach(var propertyInfo in typeof(A).GetProperties())
{
    if(Type.GetTypeCode(propertyInfo.PropertyType) == TypeCode.String)
        Console.WriteLine((string)propertyInfo.GetValue(yourInstance, null));
}
于 2012-06-25T00:36:27.743 回答