ASP.NET 3.5中使用webservice的自定义数据批注
我无法在asp.net 3.5 webservice中创建自定义ValidationAttribute。 一切似乎都正常,它编译并运行,只是没有输入我创建的自定义属性。 Msdn documentation()声明我必须重写IsValid方法来验证它,但它仍然没有输入IsValid。 我想这是一个配置问题,我看不到atm代码中有任何其他缺陷 这是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()
[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!!切换到最新版本;)