如何获得可变属性值
本文关键字:属性 何获得 | 更新日期: 2023-09-27 18:05:58
我的目标是获得类属性属性和它的值。
例如,如果我有一个属性'Bindable'来检查属性是否可绑定:
public class Bindable : Attribute
{
public bool IsBindable { get; set; }
}
我有一个Person类
public class Person
{
[Bindable(IsBindable = true)]
public string FirstName { get; set; }
[Bindable(IsBindable = false)]
public string LastName { get; set; }
}
我怎么能得到FirstName和LastName的'Bindable'属性值?
public void Bind()
{
Person p = new Person();
if (FirstName property is Bindable)
p.FirstName = "";
if (LastName property is Bindable)
p.LastName = "";
}
谢谢。
实例没有单独的属性-您必须询问类型的成员(例如Type.GetProperties
),并询问这些成员的属性(例如PropertyInfo.GetCustomAttributes
)。
编辑:根据评论,MSDN上有一个关于属性的教程。
您可以这样尝试:
public class Bindable : Attribute
{
public bool IsBindable { get; set; }
}
public class Person
{
[Bindable(IsBindable = true)]
public string FirstName { get; set; }
[Bindable(IsBindable = false)]
public string LastName { get; set; }
}
public class Test
{
public void Bind()
{
Person p = new Person();
foreach (PropertyInfo property in p.GetType().GetProperties())
{
try
{
Bindable _Attribute = (Bindable)property.GetCustomAttributes(typeof(Bindable), false).First();
if (_Attribute.IsBindable)
{
//TODO
}
}
catch (Exception) { }
}
}
}