2013-03-26 6 views
5

मैं कुछ चारों ओर मेरे द्वारा बनाए गए बुनियादी ServiceStack आवेदन के भीतर आग धाराप्रवाह-मान्यता हो रही अनदेखी किया जाना चाहिए। मैं उदाहरण का पालन कर रहा हूं here। मेरे जीवन के लिए मैं अपने वैधकर्ता आग नहीं लग रहा है ???? टुकड़े, कुछ बेवकूफ होना चाहिए कि मैं याद कर रहा हूँ .... ???ServiceStack और FluentValidation नहीं फायरिंग

मैं उपयोगकर्ता सेवा (http://my.service/users) के खिलाफ उपयोगकर्ता अनुरोध जारी कर रहा हूं, अनुरोध सीधे पंजीकृत वैध सत्यापनकर्ता के बिना सीधे चला जाता है।

अनुरोध है: { "नाम", "", "कंपनी", "सह", "आयु": 10, "गणना": 110, "पता": "123 भूरे रंग str"।}

प्रतिक्रिया: 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

कुछ भी नहीं खड़ा है। आप अपना अनुरोध कैसे पोस्ट कर रहे हैं? क्या अंत में प्रारूप (http: //my.service/users? Format = json) जोड़ना प्रतिक्रिया बदलता है? – paaschpa

+0

मैं बस Google क्रोम ऐप का उपयोग कर रहा हूं। [बाकी-कंसोल] (http://codeinchaos.com/post/3610180596/rest-console-a-google-chrome-rest-http-client)। मैं एक मानक एएसपी.नेट वेब साइट के अपने लोकहोस्ट इंस्टेंस के खिलाफ JSON को फायर कर रहा हूं। – darthal

+0

हम्म ... आपके कोड की प्रतिलिपि बनाई और आरईएसटी कंसोल सेटिंग्स 'लक्ष्य> अनुरोध यूआरआई' = लोकलहोस्ट/उपयोगकर्ता, 'लक्ष्य> अनुरोध विधि' = POST, 'बॉडी> सामग्री प्रकार' = एप्लिकेशन/जेसन, 'बॉडी> रॉ बॉडी' = {ऊपर आपका अनुरोध} और सत्यापन को हटाएं 'भेजें' पर क्लिक करें। क्या अन्य सभी फ़ील्ड रीस्ट-कंसोल खाली हैं (यानी अनुरोध पैरामीटर)? यह भी जांचने के लिए कि प्लगइन्स/फ़िल्टर सही तरीके से सेटअप हैं या नहीं, http://stackoverflow.com/questions/15297745/servicestack-validation-not-always-firing/15345117#15345117 देखें। – paaschpa

उत्तर

6

ठीक है .... मुद्दा .... मैं (त्रुटि में) स्थापित (nuget माध्यम से) और अपने प्रोजेक्ट सेवा-ढेर के FluentValidation कार्यान्वयन के साथ FluentValidation.dll भीतर संदर्भित पाया (नाम स्थान ServiceStack.FluentValidation देखें)। एक बार मैंने इसे एकमात्र गलत फ़्लुएंट वैलिडेशन संदर्भ हटा दिया और यह सुनिश्चित किया कि मेरा सत्यापनकर्ता AbstractValidator के सर्विस-स्टैक कार्यान्वयन से बढ़ाया गया है, वैधकर्ताओं को सही ढंग से निकाल दिया गया है ...

संबंधित मुद्दे