假设我有以下资产类别:
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");
}