我有一个带有以下属性定义的发票对象...
[CustomValidation(typeof(InvoiceValidator), "ValidateInvoiceDate")]
public DateTime InvoiceDate { get; set; }
当我在我的 MVC 应用程序中进行回发时,我会得到一个发票对象,然后执行此操作...
if(ModelState.IsValid)
{
SaveInvoice(invoice);
}
我的验证器看起来像这样......
public static class InvoiceValidator
{
public static ValidationResult ValidateInvoiceDate(DateTime invoiceDate, ValidationContext context)
{
// some validation code (omitted)
}
}
我的问题似乎是让大坝工作,因为目前它只是抛出一个异常:
The CustomValidationAttribute method 'ValidateInvoiceDate' does not exist in type 'InvoiceValidator' or is not public and static.
这种说法显然是不对的,验证器类存在,具有正确修饰符(public、static)的方法也存在。这是我之前使用过的代码,通常可以正常工作,但由于某种原因这次无法正常工作。
任何想法还有什么可能导致这个异常被抛出?
我尝试过的事情:
干净的解决方案和完全重建(编译时没有错误)。将方法/验证器类和重构属性重命名为新值,然后重新编译头在此处询问
在我看来,我的代码没有正确运行或其他什么,因为我不明白为什么明确声明的公共静态方法会导致错误,说除此之外没有声明它。