c# - 通过作为字符串传递的名称引用 c# 对象字段

标签 c# asp.net asp.net-mvc-4

我正在使用 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/

相关文章:

c# - 如何将 Typescript Map 对象发布到 ASP.Net Core WebAPI?

asp.net - .NET 中如何调用服务器端事件

c# - "Incorrect syntax near ' = '"运行时错误 c# asp.net

asp.net - 在 IIS 中发布 CSS 文件

c# - 是否可以在 Unity 编辑器中选择性地阻止某些程序集的重新加载?

c# - 在 c# 中成为 unity 3d 对象的子对象

C# 套接字与 NodeJS Socket.IO

c# - 将用户身份从 MVC 传递到 Web Api

visual-studio - 使用 MSBuild.exe 通过 cmd 行将 ASP.NET MVC 4 项目设置为 "Publish"

c# - 有没有办法将 CSS 类动态分配给 MVC4 Html.Encode 条目?