C# · 12月 23, 2021

C#使用Reflection来获取通用对象(及其嵌套对象)属性

这是为了帮助了解我想要实现的目的而创建的一个场景.

我正在尝试创建一个返回一个通用对象的指定属性的方法

例如

public object getValue<TModel>(TModel item,string propertyName) where TModel : class{ PropertyInfo p = typeof(TModel).GetProperty(propertyName); return p.GetValue(item,null);}

如果您正在寻找TModel项目上的一个属性,上面的代码工作正常
例如

string customerName = getValue<Customer>(customer,”name”);

但是,如果您想了解客户群组的名称,就成为一个问题:
例如

string customerGroupName = getValue<Customer>(customer,”Group.name”);

希望有人能给我一些关于这种方式的洞察力 – 谢谢.

解决方法 在System.Web.UI命名空间中有一个方法: DataBinder.Eval(source,expression);