ASP.NET 3.5中使用webservice的自定义数据批注

ASP.NET 3.5中使用webservice的自定义数据批注,asp.net,web-services,data-annotations,asp.net-3.5,Asp.net,Web Services,Data Annotations,Asp.net 3.5,我无法在asp.net 3.5 webservice中创建自定义ValidationAttribute。 一切似乎都正常,它编译并运行,只是没有输入我创建的自定义属性。 Msdn documentation()声明我必须重写IsValid方法来验证它,但它仍然没有输入IsValid。 我想这是一个配置问题,我看不到atm代码中有任何其他缺陷 这是webservice代码 [WebMethod] [Authorize("me")] public string test()

我无法在asp.net 3.5 webservice中创建自定义ValidationAttribute。 一切似乎都正常,它编译并运行,只是没有输入我创建的自定义属性。 Msdn documentation()声明我必须重写IsValid方法来验证它,但它仍然没有输入IsValid。 我想这是一个配置问题,我看不到atm代码中有任何其他缺陷

这是webservice代码

    [WebMethod]
    [Authorize("me")]
    public string test()
    {
        return "Here I am";
    }
这是ValidationAttribute

公共类AuthorizeAttribute:ValidationAttribute { 公共字符串me{get;private set;} 公共属性(字符串me) { if(string.IsNullOrEmpty(me)) { 抛出新的异常(“不是我!”); }

        this.me = me;
    }

    public override bool IsValid(object value)
    {
        bool result = false;
        return result;
    }


}
我想说的是,在webmethod执行之前,它先进入构造函数(至少是这样!),然后进入IsValid方法,但它没有

你能说错误在哪里吗

谢谢

/斯鲍尔


aaaa我似乎无法正确格式化此问题。很抱歉,下面是我项目中的代码,请查看它是否有助于您处理和实现此问题

protected override ValidationResult IsValid(object value,
                                            ValidationContext validationContext)
{
    if (value == null || string.IsNullOrWhiteSpace(value.ToString()))
    {
        var property = validationContext.ObjectInstance.GetType()
            .GetProperty(_fieldName);

        var propertyValue = property.GetValue(validationContext.ObjectInstance, null);


        if (Validate(propertyValue))
        {
            return new ValidationResult(
                string.Format(ErrorMessageString, validationContext.DisplayName));
        }
    }
    return ValidationResult.Success;
}

谢谢,我今天晚些时候会试试。我会让你了解最新情况:D抱歉,因为反应太晚,很遗憾,你发布的内容只针对.Net framework>=4:(我得到了3.5.Whoaa!!切换到最新版本;)