मैं एक वेब एपीआई आरईएसटी कमांड पर एक इनपुट को प्रमाणित करना चाहता हूं। मैं इसे State
जैसे कुछ काम करने के लिए पैरामीटर के मान्य मानों को सीमित करने वाली विशेषता के साथ सजाए जाने के लिए कुछ करना चाहता हूं।स्वीकृत मानों की सूची के खिलाफ स्ट्रिंग की जांच करने के लिए वेब एपीआई कस्टम सत्यापन
public class Item {
...
// I want State to only be one of "New", "Used", or "Unknown"
[Required]
[ValidValues({"New", "Used", "Unknown"})]
public string State { get; set; }
[Required]
public string Description { get; set; }
...
}
क्या वेब एपीआई के अनाज के बिना इसे करने का कोई तरीका है। आदर्श रूप से दृष्टिकोण रेल के custom validation पर रूबी के समान होगा।
सुंदर के लिए संकलित या परीक्षण नहीं होने अच्छा । यह न्यूनतम tweaking के साथ काम किया: कन्स्ट्रक्टर 'args' पैरामीटर से पहले' पैराम्स 'पसंद नहीं आया। साथ ही, विशेषता इस तरह दिखती है '[ValidValues (नया [] {"नया", "प्रयुक्त", "अज्ञात"})] ' –
मैंने उपरोक्त कोड संकलित किया। मुझे कन्स्ट्रक्टर सार्वजनिक बनाना था। इसके अलावा, यह उम्मीद के रूप में काम किया। मेरे लिए, 'पैराम्स' काम किया। –
क्या होगा यदि मैं इसे एक हार्डकोडेड सूची पास नहीं करना चाहता हूं? उदाहरण के लिए, मौजूदा सूची का संदर्भ। इसके लिए कोई भी विचार जो अभी भी सिंगलटन या सर्विस लोकेटर की तरह कुछ निर्भरता इंजेक्शन का उपयोग करता है? मुझे लगता है कि यह संभव नहीं है क्योंकि गुण संकलन समय को प्रभावित कर सकते हैं। – crush