我正在使用 C# 中的 ASP.NET MVC 编写自定义报告模块
用户将能够定义他们希望在报告中看到的字段列表。
我想知道是否可以使用字符串引用对象字段,以便我可以枚举所选字段的列表。
例如通常在 View 中,基本上我会执行以下操作
@foreach (Title item in Model)
{
@item.Name
@item.Isbn
}
我会寻找类似的东西
@foreach (Title item in Model)
{
@item.Select("Name")
@item.Select("Isbn")
}
最佳答案
其中一种方法是通过反射(reflection)。在某处添加此辅助方法:
private object GetValueByPropertyName<T>(T obj, string propertyName)
{
PropertyInfo propInfo = typeof(T).GetProperty(propertyName);
return propInfo.GetValue(obj);
}
用法:
@foreach (Title item in Model)
{
var name = GetValueByPropertyName(item, "Name");
var isbn = GetValueByPropertyName(item, "Isbn");
}
关于c# - 通过作为字符串传递的名称引用 c# 对象字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38766401/