Ich muss etwas über die fließend-Validierung in der grundlegenden Service-Stack Anwendung, die ich erstellt haben. Ich habe das gefundene Beispiel here verfolgt. Für das Leben von mir kann ich nicht scheinen, meine Prüfer Feuer zu bekommen ???? Krümel, da muss etwas Dummes sein das ich vermisse .... ???ServiceStack und FluentValidation NICHT feuern
Ich erteile eine Benutzeranfrage gegen den User-Service (http://my.service/users), die Anfrage geht direkt durch, ohne den entsprechenden registrierten Validator aufzurufen.
Anfrage ist: { "Name": "", "Gesellschaft": "Co", "Alter": 10, "Count": 110, "Adresse": "123 braun str".}
Antwort: "user gespeichert ..."
Hier ist der Code: 1.DTO
[Route("/users")]
public class User
{
public string Name { get; set; }
public string Company { get; set; }
public int Age { get; set; }
public int Count { get; set; }
public string Address { get; set; }
}
2.Validator
public class UserValidator : AbstractValidator<User>
{
public UserValidator()
{
RuleFor(r => r.Name).NotEmpty();
RuleFor(r => r.Age).GreaterThan(0);
}
}
3.AppHostBase
public class ValidationAppHost : AppHostBase
{
public ValidationAppHost()
: base("Validation Test", typeof(UserService).Assembly)
{
}
public override void Configure(Funq.Container container)
{
Plugins.Add(new ValidationFeature());
//This method scans the assembly for validators
container.RegisterValidators(typeof(UserValidator).Assembly);
}
}
4.Service
public class UserService : Service
{
public object Any(User user)
{
return "user saved...";
}
}
5.Global.asax.cs
protected void Application_Start(object sender, EventArgs e)
{
new ValidationAppHost().Init();
}
nichts herausragt. Wie senden Sie Ihre Anfrage? Fügt das Hinzufügen des Formats (http: //my.service/users? Format = json) zum Ende die Antwort hinzu? – paaschpa
Ich benutze nur die Google Chrome App. [REST-Konsole] (http://codeinchaos.com/post/3610180596/rest-console-a-google-chrome-rest-http-client). Ich feuere den JSON gegen meine Localhost-Instanz einer Standard-ASP.NET-Website. – darthal
hmm ... Kopieren Sie Ihren Code und verwenden Sie REST-Konsoleneinstellungen 'Ziel> Request URI' = localhost/users, 'Ziel> Request Methode' = POST, 'Body> Content Type' = application/json, 'Body> RAW BODy' = {Ihre Anfrage oben} und klicken Sie auf "Senden" die Validierung ausgelöst. Sind alle anderen Felder REST-Console leer (zB Request Parameter)? Siehe auch http://stackoverflow.com/questions/15297745/servicestack-validation-not-always-firing/15345117#15345117, um zu überprüfen, ob Plugins/Filter korrekt eingerichtet sind. – paaschpa