Ich verwende Datenannotationen, um meine Web API 2-Modelle zu validieren. Für die grundlegende attributbasierte Validierung (Required
, Range
, usw.) ist es ziemlich einfach, lokalisierte Nachrichten bereitzustellen, indem benutzerdefinierte ModelMetadataProvider
injiziert wird. Doch für komplexere Regeln implementieren I IValidatableObject
die eine Folge von ValidationResult
zurückgibt:Lokalisierung in IValidatableObject.Validate()
public class ValidationResult
{
public ValidationResult(string errorMessage);
public ValidationResult(string errorMessage, IEnumerable<string> memberNames);
}
Es sieht aus wie es keine Möglichkeit gibt ErrorMessageResourceName
hier angeben. Und ich möchte meine Models nicht vom Lokalisierungsanbieter abhängig machen. Wie kann ich das Problem lösen?
Ich sehe kein Problem ... Warum übergeben Sie nicht einfach eine lokalisierte Zeichenfolge im contructor.Oder, wenn Sie nur den Schlüssel übergeben möchten, verwenden Sie den aktuellen ResourceManager, um den tatsächlichen Wert zu finden ... –