希望通过一个类的属性列表,然后为每个传递的属性读取自定义属性:
class Foo
{
[FooBar(Name="Prop1")]
public string Prop1 { get; set; }
[FooBar(Name="Prop2")]
public int Prop2 { get; set; }
[FooBar(Name="Prop3")]
public bool Prop3 { get; set; }
}
// unsure of the props parameter type here
public List<string> GetAttr(Expression<List<Func<Foo, object>>> props)
{
foreach(var prop in props)
{
// get FooBar attributes name value of the properties passed in
}
}
然后按照以下方式引用:
GetAttr(bar => { bar.Prop1, bar.Prop2 });
这将返回:
"Prop1", "Prop2"
我设法通过将参数定义为 params Expression>> 使其工作,但这最终非常冗长,因为每次都需要指定条形引用:
GetAttr(bar => bar.Prop1, bar => bar.Prop2);
虽然这有效,但它比我试图替换的系统更冗长。
目的是能够指定列表中返回的属性
编辑:在示例代码中添加了另一个属性。
相关分类