如何从模型列表中获取每个值名称

时间:2017-05-30 14:46:27

标签: c# .net

我正在开发一个项目,需要列出并存储一些模型的内容并将其添加到列表中。

这是我的模特:

public class ProductPage
    {

           public string Name { get; set; }
           public string Reference { get; set; }
           public string Color { get; set; }
    }

这是我的代码:

public List<TechnicalAttributes> GetAttributeFromProduct(ProductPage product)
        {
            List<TechnicalAttributes> attributeList = new List<TechnicalAttributes>();

            foreach (PropertyInfo pi in product.GetType().GetProperties())
            {
                if (pi.PropertyType == typeof(string))
                {
                    string value = (string)pi.GetValue(product);
                    if (!string.IsNullOrEmpty(value))
                    {
                        if (!Helper.IsNumeric(value))
                        {
                            attributeList.Add(new TechnicalAttributes() { Name = GetVariableName(() => value), Value = value });
                        }
                    }
                }
            }

            return attributeList;
        }

我的代码允许我这样做:

type = "value" - attribute = "myName"
type = "value" - attribute = "myReference"
type = "value" - attribute = "myColor"

但我希望有这样的东西:

type = "Name" - attribute = "myName"
type = "Reference" - attribute = "myReference"
type = "Color" - attribute = "myColor"

我需要使用foreach,因为我的模型中有更多参数! 有谁可以帮助我吗 ?

2 个答案:

答案 0 :(得分:2)

我想您想使用pi.Name来获取该属性的名称。

此属性是System.Reflection.MemberInfo的一部分,也可在PropertyInfo中找到。它会为您提供该物业的名称。

答案 1 :(得分:-1)

问题解决了,

您可以使用属性Info。

获取参数名称
pi.Name;