在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