如何获取在运行时不包含属性的类的属性

时间:2017-06-28 14:51:44

标签: c# reflection attributes

所以我创建的Attribute就是这样:

public class IgnoreFilter : Attribute
{
}

我有一个类,我也使用它也是这样的:

public class Customer
{

    private string name;
    public string Name
    {
        get { return name; }
        set
        {
            name = value;
            RaisePropertyChanged();
        }
    }

    private string address;
    [IgnoreFilter]
    public string Address
    {
        get { return address; }
        set
        {
            address = value;
            RaisePropertyChanged();
        }
    }

我现在正试图从我的Customer类中获取不包含IgnoreFilter属性的所有属性。到目前为止,我有......

customer.GetType().GetRuntimeProperties().Where(p => !p.CustomAttributes.Contains(typeof(IgnoreFilter)));

但最后一行没有编译。我想我是在正确的路线,但我可能错过了一些东西。

有人可以帮助从不包含自定义属性的类中获取属性吗?

1 个答案:

答案 0 :(得分:0)

根据我最终使用的评论:

customer.GetType().GetRuntimeProperties().Where(p =>  p.CustomAttributes.FirstOrDefault(x => x.AttributeType == typeof(IgnoreFilter)) == null);