In der derzeit veröffentlichten Version von FluentValidation (v2) wird dies bei der Verwendung lokalisierter Nachrichten nicht unterstützt.
Das erste Argument von WithLocalizedMessage muss immer eine Ressourceneigenschaft bezeichnen - Sie können dort keinen beliebigen Code einfügen (z. B. einen Aufruf von string.format).
Wenn Sie eine nicht-lokalisierte Nachricht verwenden, können Sie dies tun:
RuleFor(x => x.Property).Length(1,255).WithMessage("Max number of chars is {0}", "255");
Sie können diesen Ansatz auch mit lokalisierten Fehlermeldungen ab FluentValidation v3 verwenden, aber es gibt noch keine Binärversion, so dass Sie, wenn Sie dies nutzen wollen, den Quellcode von der Projektseite herunterladen und erstellen können.
Alternativ können Sie anstelle von numerischen Platzhaltern auch die in FV eingebaute Unterstützung für benannte Platzhalter für die Standardvalidierer verwenden. Wenn Sie also .Length(1, 255) verwenden, können Sie {MaxLength} in Ihrer Fehlermeldung anstelle von {0} verwenden:
Bitte verwenden Sie weniger als {MaxLength} Zeichen.
...und FV ersetzt diesen automatisch durch den Wert, den Sie als Höchstwert eingegeben haben. Es gibt eine vollständige Liste aller benannten Platzhalter in der Dokumentation .