使用反射仅获得某些属性的最佳方法是什么?

时间:2010-10-21 16:13:38

标签: c# .net asp.net reflection

我正在努力想出一种最好的方法,只使用反射从类型中获取某些属性。如何区分属性?

让我补充一下,以帮助澄清我的问题。

我知道我可以使用绑定标志或名称。但是说我只想要一定的四个属性。最好的方法是为我想要的属性创建一个自定义属性然后循环遍历所有属性以查看它们是否具有该属性?

3 个答案:

答案 0 :(得分:4)

嗯,相当明显地通过名称,类型或声明类型(例如类型或其基类)。

基本上,如果您可以通过“某些属性”来描述您的意思,那么只需将该谓词转换为代码即可。例如,假设您只想要以A:

开头的属性
var properties = type.GetProperties().Where(p => p.Name.StartsWith("A"));

答案 1 :(得分:1)

System.Reflection.BindingFlags旨在允许您在反映类型时过滤公共/私有,成员/静态等内容。

答案 2 :(得分:0)

您可以使用Type.GetProperty(string)获取特定属性。