5

मेरे पास मेरे समाधान के विरासत कोड में कस्टम अपवादों का समूह है। और मैं परीक्षण करने के लिए सभीकस्टम अपवाद कहने के लिए कम से कम आवश्यकताएं क्या हैं?

कस्टम अपवाद अपनी परियोजनाओं में शुरू की गई है, तो वे Serializable हैं (XML) को देखने के लिए

तो, क्या मेरी परीक्षण पास करने के लिए जब एक कस्टम अपवाद नहीं है की जाँच करनी चाहिए चाहते हैं serializable?

कहने के लिए कम से कम आवश्यकताएं क्या हैं कि कस्टम अपवाद क्रमबद्ध है?

+0

उन्हें serializable बनाने में कोई समस्या नहीं है, जब तक प्रकार का नाम धारावाहिक हो जाता है। Deserialization कठिन हिस्सा होगा, अपवादों को हमेशा उनके कन्स्ट्रक्टर से अपने संपत्ति मूल्य मिलता है। फिर फिर, एक एक्सएमएल फ़ाइल से अपवाद को deserializing ज्यादा समझ में नहीं आता है। –

उत्तर

2

आप देख सकते हैं अपने सभी अपवाद कक्षाएं IXmlSerializable इंटरफ़ेस को लागू करता है, तो:

Assert.IsTrue(yourExceptionInstance is IXmlSerializable); 
+0

मेरा मानना ​​है कि ओपी एक्सएमएल सीरियलाइजेशन का जिक्र कर रहा है और उस स्थिति में सीरियलज़ेबल विशेषता का कोई प्रभाव नहीं पड़ता है। –

+0

@ जोओ, धन्यवाद, तय :) –

1

Exception आधार वर्ग एक सार्वजनिक संपत्ति Data जो IDictionary जो डिफ़ॉल्ट नेट एक्सएमएल क्रमबद्धता तंत्र द्वारा समर्थित नहीं है लागू करता उजागर करता है।

तो मेरा मानना ​​है कि एक्सएमएल को अपवाद को क्रमबद्ध करने के लिए आपको कस्टम एक्सएमएल क्रमबद्धता तर्क प्रदान करने के लिए IXmlSerializable को लागू करने के लिए मजबूर होना होगा।

उस पर आधारित आप यह जांच सकते हैं कि आपकी कक्षाएं उस विशिष्ट इंटरफ़ेस को कार्यान्वित करती हैं, जैसे फ्रेडेरिक ने अपने उत्तर में प्रदर्शित किया।

1

मैं xmlSerializer.CanDeserialize (..) विधि का उपयोग करने का सुझाव दूंगा।

MSDN

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