2017-06-28 2 views
0
は、だから私は、私はそうのような 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(); 
     } 
    } 

私は今IgnoreFilter属性が含まれていない私のCustomerクラスから実行時にすべてのプロパティを取得しようとしています。これまでのところ、私は...

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

最後の行はコンパイルされません。私は正しい行にいると思うが、おそらく何か不足している。

カスタム属性を含まないクラスからプロパティを取得する手助けがありますか?私が使用して終了コメントから

+1

'Contains'が間違っています。 – Sinatr

+0

@Sinatrありがとう、完璧に動作します – user1

答えて

0

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

'FirstOrDefault()== nullのいずれかを使用してください。 'は'!Any() 'です。 – Sinatr