【问题标题】:Doesn't .net attribute support delegation? [duplicate].net 属性不支持委托吗? [复制]
【发布时间】:2017-05-10 22:32:17
【问题描述】:

我在将参数传递给属性时尝试使用委托,但编译器出错:“构造函数参数条件不是有效的特征参数类型”。.net 属性不支持委托吗?或者有替代方法将 Func 传递给属性? 代码:

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);
    }
}

【问题讨论】:

    标签: c# .net attributes func delegation


    【解决方案1】:

    尝试使用委托?或者你想在这种情况下实现一些特别的东西?

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

    【讨论】:

    • 我正在寻找一种方法来阻止其他验证属性被执行。如果属性接受 lambda 表达式会很方便。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 2011-04-21
    相关资源
    最近更新 更多