[英]Get PropertyInfo of a parameter passed as lambda expression | Compact Framework, C#
说我有以下资产类别:
class Asset
{
public int Id { get; set; }
public string Name { get; set; }
}
现在,我想编写一个方法GetPropertyInfo(a=>a.Name);
这个方法给了我Asset.Name的PropertyInfo。 我应该可以像这样调用此方法:
编辑示例方法调用
PropertyInfo propInfo = GetPropertyInfo(a=>a.Name);
我有一个List<PropertyInfo>
所以我想将给定的lambda表达式与列表中的表达式匹配。
if(Possible on Compact Framework 3.5 && using C#)
How?
else
Please Notify
谢谢。
这可以在.NETCF 3.5下完成。
private List<Asset> m_list;
private Asset[] GetPropertyInfo(string name) {
var items = m_list.Where(a => a.Name == name);
if (items != null) {
return items.ToArray();
} else {
return null;
}
}
但是,您将需要初始化m_list
并首先将其填充数据。
更新:
因此,您的列表的类型为PropertyInfo
并且您希望调用以获取与特定Asset
对象匹配的类型。
如果正确,则可以简单地将上面的代码编辑如下:
private List<PropertyInfo> m_list;
private PropertyInfo GetPropertyInfo(Asset a) {
return m_list.FirstOrDefault(x => x.Name == a.Name);
}
我不确定您如何获取List<PropertyInfo>
。 我可以使用以下代码提取单个PropertyInfo
对象:
private PropertyInfo GetPropertyInfo() {
var t = Type.GetType("System.Reflection.MemberInfo");
return t.GetProperty("Name");
}
这个项目没有什么用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.