如何将类型属性的所有名称检索为数组?

san*_*084 -3 .net c# reflection properties

假设我有一个Employee班级:

public class Employee
{
    public string Name    { get; set;}
    public string Address { get; set ;
}
Run Code Online (Sandbox Code Playgroud)

现在我想用Employee类'属性名创建一个数组,即:

string[] employeeArray = { "Name", "Address" };
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有硬编码属性名称的情况下实现这一目标?

sta*_*ica 8

您可以使用反射执行此操作,特别是使用该Type.GetProperties方法.

这是两种可能的解决方案; 一个使用LINQ,另一个没有(如果您的目标是早期版本的框架):

请注意,Type.GetProperties()只会看到公共实例属性.如果您还对静态属性或非公共属性的名称感兴趣,则需要调用不同的重载GetProperties.