devo essere vista qualcosa intorno ricevendo il fluente-convalida a fuoco all'interno di base ServiceStack applicazione ho creato. Ho seguito l'esempio trovato here. Per la vita di me non riesco a far incendiare i miei validatori ???? Briciole, ci deve essere qualcosa di stupido che mi manca .... ???ServiceStack e FluentValidation NON sparare
Sto inviando una richiesta utente contro il servizio utente (http://my.service/users), la richiesta passa direttamente senza richiamare il validatore appropriato registrato.
richiesta è: { "Nome": "", "Società": "Co", "Age": 10, "Count": 110, "Indirizzo": "123 marrone str".}
risposta: "user salvato ..."
Ecco il codice: 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();
}
Nulla spicca. Come stai postando la tua richiesta? L'aggiunta del formato (http: //my.service/users? Format = json) alla fine modifica la risposta? – paaschpa
Sto solo utilizzando l'app Google Chrome. [REST-Console] (http://codeinchaos.com/post/3610180596/rest-console-a-google-chrome-rest-http-client). Sto sparando il JSON contro la mia istanza localhost di un sito web ASP.NET standard. – darthal
hmm ... Copiato il codice e utilizzando le impostazioni della console REST 'Destinazione> URI richiesta' = localhost/utenti, 'Destinazione> Metodo di richiesta' = POST, 'Corpo> Tipo di contenuto' = application/json, 'Body> RAW BODy' = {la tua richiesta sopra} e facendo clic su 'Invia' la convalida attivata. Tutti gli altri campi sono REST-Console vuoti (ad es. Parametri di richiesta)? Consulta anche http://stackoverflow.com/questions/15297745/servicest-validation-not-always-firing/15345117#15345117 per verificare se i plug-in/filtri sono impostati correttamente. – paaschpa