如何获取类中属性的名称
比如现在有一个类如下:
class Item { public GUID Id { get; set; } public string Name { get; set; }}
Item item = new Item();
string name = typeof(Item).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance)[1].Name;
[解决办法]
将item封装成类,里面发布Name属性
[解决办法]
public string GetPropertyName(Expression<Func<Item, string>> expr) { var name = ((MemberExpression)expr.Body).Member.Name; return name; }string name = GetPropertyName(o=>o.Name);
[解决办法]
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Linq.Expressions;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { string name = GetPropertyName(o => o.Name); Console.WriteLine(name); string id = GetPropertyName(o => o.Id); Console.WriteLine(id); Console.ReadKey(); } public static string GetPropertyName<T>(Expression<Func<Item, T>> expr) { var name = ((MemberExpression)expr.Body).Member.Name; return name; } } class Item { public int Id { get; set; } public string Name { get; set; } }}