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)
有没有办法在没有硬编码属性名称的情况下实现这一目标?
您可以使用反射执行此操作,特别是使用该Type.GetProperties方法.
这是两种可能的解决方案; 一个使用LINQ,另一个没有(如果您的目标是早期版本的框架):
// using System.Linq;
typeof(Employee).GetProperties().Select(p => p.Name).ToArray()
Run Code Online (Sandbox Code Playgroud)// using System;
Array.ConvertAll(typeof(Employee).GetProperties(), p => p.Name)
Run Code Online (Sandbox Code Playgroud)请注意,Type.GetProperties()只会看到公共实例属性.如果您还对静态属性或非公共属性的名称感兴趣,则需要调用不同的重载GetProperties.
| 归档时间: |
|
| 查看次数: |
1379 次 |
| 最近记录: |