【发布时间】:2017-01-08 08:54:33
【问题描述】:
我正在尝试为我的搜索创建一个通用方法,但我不知道如何从我的类中返回字段列表。
假设我有一门课:
public class Table
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
public string Address { get; set; }
}
现在我想返回一个如下所示的列表:
"ID"
"Name"
"Address"
我该怎么做?
试过这样的:
FieldInfo[] fields = typeof(T).GetFields(
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
string[] names = Array.ConvertAll<FieldInfo, string>(fields,
delegate(FieldInfo field) { return field.Name; });
但是字段名后面有一些不必要的文字
编辑
这不是重复的,因为在我的情况下 GetProperties().Select(f => f.Name) 有所作为
【问题讨论】:
-
您在搜索时要查找的术语是“反射”。最容易试验的是
typeof(Table).GetProperties(),它返回PropertyInfo对象的集合。 -
特别是,您正在寻找类的属性。 (支持这些属性的字段将具有编译器生成的名称...)
标签: c# asp.net-mvc generic-programming