मैं अपनी परियोजना में Fluent Validation का उपयोग कर रहा हूं।
मेरे व्यूमोडेल में मेरे पास एक ऐसी प्रॉपर्टी है जो टाइप स्ट्रिंग है, मान्य मान केवल स्ट्रिंग सकारात्मक पूर्णांक का प्रतिनिधित्व करते हैं।
तो, मैंने एक साधारण IntegerValidator
बनाया है जो यह जांचता है कि स्ट्रिंग को पूर्णांक में पार्स किया जा सकता है या नहीं। यह काम।
समस्या यह है कि नियम कैसे जोड़ना है कि यह एक सकारात्मक पूर्णांक होना चाहिए? मैं मौजूदा Greater Than Validator का उपयोग करना चाहता हूं, लेकिन मेरी स्ट्रिंग प्रॉपर्टी के लिए इसे नियम में जोड़ना इसे string
के रूप में तुलना करेगा, न कि int
के रूप में। इसे कैसे प्राप्त करें? मैं करना चाहते हैं क्या कीचेनिंग नियम जो एक दूसरे पर निर्भर करते हैं
नमूना (ध्यान दें ToInt()
):
RuleFor(x => x.BatchNumber).SetValidator(new IntegerValidator())
.ToInt().GreaterThan(0);
यह वास्तव में समझ में आता है! हालांकि, मुझे आश्चर्य है कि ToInt की भूमिका क्या होनी चाहिए। जैसा कि मैंने इसे देखा है, इसे 'नियमबिल्डर' को 'नियमबिल्डर ' में परिवर्तित करना चाहिए और यह सुनिश्चित करना है कि सत्यापित मान सत्यापन समय पर 'int' में परिवर्तित हो। लेकिन ... विधि श्रृंखला को 'नियमबिल्डर ' वापस करना चाहिए। सही? इसलिए, 'int' सत्यापन करने के लिए लगातार 'int' नियमों (जैसे' ग्रेटरथान') को निर्देशित करने का एक तरीका होना चाहिए, लेकिन 'स्ट्रिंग' नियमबिल्डर को वापस कर दें। मुझे डर है कि यह FluentValidation की वर्तमान क्षमताओं से परे है। –
@GertArnold: ठीक है, 'ToInt' बहुत अधिक समझ में नहीं आता है, मुझे लगता है। मुझे वास्तव में परवाह नहीं है कि यह कैसे काम करेगा, बस * मैं * मैं 'ग्रेटर थान' का उपयोग कर सकता हूं और यह कि एक 'ग्रेटर थान' को पास किया जाता है। –
ठीक है, मेरा मुख्य बिंदु यह है कि फ्लुएंट सत्यापन की वर्तमान मानसिकता में यह वैचारिक समस्या हो सकती है। –