की बजाय असफल deserialization पर एक खाली वस्तु बनाता है WebAPI में, मैंने एक असाधारणता देखी है जो हमारे सत्यापन प्रथाओं के साथ गड़बड़ कर रहा है। यदि आप एक्सएमएल में एक पोस्ट के साथ एक खराब शरीर/पेलोड भेजते हैं, तो deserialization विफल रहता है और आप एक शून्य सूचक मिलता है। यदि आप JSON में खराब बॉडी/पेलोड भेजते हैं, तो आपको इसके बजाय एक खाली ऑब्जेक्ट मिलता है। यह भ्रामक है और मुझे यह पसंद नहीं है। एक असफल जेसन deserialization के साथ एक शून्य सूचक को मजबूर करने का कोई तरीका है ??JSON serializer शून्य
अद्यतन: मुझे एक deserialization समस्या नहीं है। मुझे एक व्यवहार समस्या है जो DataContractSerializer और Json.net serializer के बीच एक अंतर प्रतीत होता है। जब एक्सएमएल deserialize करने में विफल रहता है, पेलोड शून्य है। हालांकि, जब जेसन deserialize करने में विफल रहता है, ऐसा लगता है कि यह अपेक्षित पेलोड का एक डिफ़ॉल्ट उदाहरण तत्काल है। एक बुरा एक्सएमएल पेलोड के
उदाहरण:
एक ही कॉल एक बुरा json पेलोड का उपयोग करने का उदाहरण
(। पेलोड नहीं अशक्त बजाय यह पेलोड वर्ग के एक डिफ़ॉल्ट उदाहरण है)
आप कोड जो इस अंतर को दिखाया जा रहा है का हिस्सा हो सकता है? –
मुझे यकीन नहीं है कि आपको कैसे दिखाया जाए क्योंकि यह प्रवेश बिंदु पर होता है। – Sinaesthetic
ठीक है, स्टार्टर्स के लिए, अपना मॉडल दिखाएं, अपनी वेब एपीआई कंट्रोलर एक्शन दिखाएं जो इस मॉडल को तर्क के रूप में ले रहा है और एक्सएमएल और जेएसओएन को दिखा रहा है जो आप इस क्रिया में पोस्ट कर रहे हैं जो व्यवहार में आपके द्वारा देखे गए सटीक मतभेदों को समझाते हैं।यह एक रचनात्मक चर्चा शुरू करने के लिए पर्याप्त होना चाहिए जो इस प्रश्न के वर्तमान चरण में काफी कठिन है। –