2016-12-26 12 views
0

Я пытаюсь использовать делегирование при передаче параметра в атрибут, но компилятор получил ошибку: «Условие параметра конструктора не является допустимым характерным типом параметров». Поддержка поддержки атрибутов .net .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

Я найти способ предотвратить другие атрибуты Validate быть executed.It будет concenient, если атрибут принимает лямбда-выражения. –