gpt4 book ai didi

.net - 使用lambda而不是字符串属性名称选择模型属性

转载 作者:行者123 更新时间:2023-12-04 03:46:44 25 4
gpt4 key购买 nike

我正在建立一种类型的属性列表,以包含在该类型的集合的导出中。我想在不使用字符串作为属性名称的情况下执行此操作。列表中仅包括该类型的某些属性。我想做类似的事情:

exportPropertyList<JobCard>.Add(jc => jc.CompletionDate, "Date of Completion");

我该如何实现这种通用的Add方法?顺便说一句,字符串是属性的描述。

最佳答案

您可以通过检查传入的表达式来获取PropertyInfo对象。类似:

public void Add<T>(Expression<Func<T,object>> expression, string displayName)
{
var memberExpression = expression.Body as MemberExpression;
PropertyInfo prop = memberExpression.Member as PropertyInfo;
// Add property here to some collection, etc ?
}

这是一个不完整的实现,因为我不知道您到底想对属性执行什么操作-但它确实显示了如何从表达式中获取PropertyInfo-PropertyInfo对象包含有关该属性的所有元数据。另外,请确保在上面的代码中添加错误处理,然后再将其应用到生产代码中(即,防止表达式不是MemberExpression等)。

关于.net - 使用lambda而不是字符串属性名称选择模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3558974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com