2013-03-26 9 views
5

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(); 
    } 
+0

Nulla spicca. Come stai postando la tua richiesta? L'aggiunta del formato (http: //my.service/users? Format = json) alla fine modifica la risposta? – paaschpa

+0

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

+0

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

risposta

6

Ok .... trovato il problema .... I (per errore) installato (tramite NuGet) e fa riferimento all'interno del mio progetto FluentValidation.dll con l'attuazione FluentValidation di Service-Stack (vedi namespace ServiceStack.FluentValidation). Una volta rimosso l'unico riferimento FluentValidation errato e assicurato che il mio validatore si estendesse dall'implementazione dello stack di servizio del AbstractValidator i validatori sono stati attivati ​​correttamente ...

Problemi correlati