我有一个名为MyMethodQuery的类,它包含我的Web方法的条目属性
[DataContract()]
public class MyMethodQuery
{
[DataMember(IsRequired = true)]
[StringLength(100, MinimumLength = 10)]
public string Id{ get; set; }
}
我的网络方法:
public string MyMethod(MyMethodQuery MyMethodQuery)
{
return "it's ok !";
}
如果我离开空房产,我想抛出异常。但是,尽管属性为StringLength
,它仍无法发挥作用。
我用SoapUI测试我的方法。
答案 0 :(得分:0)
这些属性不应该在这种情况下起作用#34;开箱即用"。 Validator类是验证世界的入口点,您必须手动调用它。
有关示例,请参阅this answer。
答案 1 :(得分:0)
[DataContract()]
public class MyMethodQuery: IValidatableObject
{
[DataMember(IsRequired = true, EmitDefaultValue = false)]
[StringLength(500, MinimumLength = 5)]
public string Id { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (Id.Length < 1)
{
yield return new ValidationResult("error");
}
}
}
但如果Id
为空,我没有错误返回