我有一个实现IValidatableObject的模型,我需要本地化ValidationResults,我该如何才能正确实现呢?
目前我想出了一个IValidatableObject.Validate方法,如下所示:
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var stringLocalizer = validationContext.GetService(typeof(IStringLocalizer<MyModel>)) as IStringLocalizer<MyModel>;
//Validation logic implementation...
yield return new ValidationResult(stringLocalizer["This thing is the error message"]);
}
我在这里做的是使用ValidationContext.GetService方法查找IStringLocalizer实例。
这种方法有效但我的主要问题是我不完全确定这是正确的,特别是因为我需要依赖服务定位器来获取IStringLocalizer