我正在开发一个项目,需要列出并存储一些模型的内容并将其添加到列表中。
这是我的模特:
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,因为我的模型中有更多参数! 有谁可以帮助我吗 ?
答案 0 :(得分:2)
我想您想使用pi.Name
来获取该属性的名称。
此属性是System.Reflection.MemberInfo
的一部分,也可在PropertyInfo
中找到。它会为您提供该物业的名称。
答案 1 :(得分:-1)
问题解决了,
您可以使用属性Info。
获取参数名称pi.Name;