2016-12-26 8 views
0

私はパスparamは属性をしたときに、委任を使用しようとしているが、コンパイラはエラーを得た:.Doesn't .NET属性サポートの委任「コンストラクタパラメータ条件が有効な特徴パラメータの種類ではありません」またはそれに代わるがありますか?属性にFuncを渡しますか? コード:.net属性が委任をサポートしていませんか?

public class Class1 
{ 
    [ValidateIf(c=>c=="hellow")] 
    public string testStr { get; set; } 
} 
public class ValidateIfAttribute : ValidationAttribute 
{ 
    public Func<object, bool> Condition { get; set; } 
    public ValidateIfAttribute(Func<object, bool> condition) : base() 
    { 
     this.Condition = condition; 
    } 
    public override bool IsValid(object value) 
    { 
     if (Condition(value)) 
     { 
      return true; 
     } 
     return base.IsValid(value); 
    } 
} 

答えて

0

代理人をお試しください。この場合特別な何かを達成しようとしていますか?

https://msdn.microsoft.com/en-us/library/ms173171.aspx

+0

私は他の検証は、属性がラムダ式を受け入れる場合、executed.Itはconcenientになりますように属性を防ぐための方法を見つけることです。 –

関連する問題