在ASP.NET 3.5中使用webservice进行自定义数据注释

我无法在asp.net 3.5 webservice中创建自定义的ValidationAttribute。 一切似乎都没问题,它编译并运行,它不会输入我创建的自定义属性。 Msdn文档(http://msdn.microsoft.com/en-us/library/cc668224(v=vs.90).aspx)指出我必须重写IsValid方法以使其得到验证,但它不会进入IsValid。 我想这是一个配置问题,我在代码atm中看不到任何其他缺陷。

所以,这是web服务代码

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

这是ValidationAttribute

公共类AuthorizeAttribute:ValidationAttribute {公共字符串我{get; 私人设置; } public AuthorizeAttribute(string me){if(string.IsNullOrEmpty(me)){throw new ArgumentNullException(“Not me!”); }

        this.me = me;
    }

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


}

我会说,在webmethod执行之前,它会进入构造函数(至少是!),然后进入IsValid方法,但它不会。

你能说错误在哪里吗?

谢谢

/ Sball

Aaaaand似乎我不能正确地格式化这个问题。 抱歉


以下是我项目的代码,看看它是否能够帮助你实现这个目标

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;
}
链接地址: http://www.djcxy.com/p/9701.html

上一篇: Custom data annotations with webservice in ASP.NET 3.5

下一篇: Unable to display ErrorMessageResourceName with custom validation attribute