मैं एक्सएमएल क्रमबद्धता का उपयोग कर रहा है, लेकिन अब एक रनटाइम त्रुटि मैंने पहले नहीं देखा है भर में आया था।क्यों XmlSerializer जो IEnumerable से विरासत जोड़ें (System.Object) के एक कार्यान्वयन के लिए प्रकार की आवश्यकता होती है?
"एक्सएमएल serializable होना करने के लिए है, जो IEnumerable से इनहेरिट उनकी विरासत के सभी स्तरों पदानुक्रम। ImageEditor.EffectOptions जोड़े को लागू नहीं करता है पर जोड़ें के कार्यान्वयन (System.Object) होना आवश्यक प्रकार (सिस्टम .Object) "
ऐसा लगता है एक छोटे से अजीब क्रम अपवाद के माध्यम से एक विधि को लागू करने के बजाय इस तरह लागू किया इंटरफेस से लापता तरीके के रूप में टाइम त्रुटि संकलन मजबूर हो।
क्या यह डिज़ाइन द्वारा है? क्या इसे XmlSerializable
, आदि जैसे किसी प्रकार के इंटरफ़ेस के माध्यम से लागू नहीं किया जाना चाहिए?
इसके अलावा मुझे आश्चर्य है कि क्या सीरिएलाइज़र सही प्रकार के मान को पारित करने की गारंटी देता है जहां मैं इसे टाइप में डाल सकता हूं, जो मेरे मामले में EffectOption
है।
या मुझे यह देखने के लिए Add (object)
विधि लागू करनी चाहिए कि यह वस्तु EffectOption
टाइप की गई है और यदि कोई अपवाद नहीं फेंकता है?
मैंने इस Add (object)
विधि को पहले लागू नहीं किया है, लेकिन मेरा अनुमान है कि इसे EffectOption
पर डालना सुरक्षित है और इसे EffectOptions
संग्रह में जोड़ें।
संपादित करें:
public class EffectOptions : IEnumerable<EffectOption>
{
public List<EffectOption> Options { get; private set; }
//IEnumerable methods
}
धन्यवाद, लेकिन आप उपवर्गों से क्या मतलब है? मेरा प्रकार किसी अन्य प्रकार से नहीं लिया गया है, यह केवल IENumerable लागू करता है। –
क्या आप विधि स्टब्स के साथ कक्षा पोस्ट कर सकते हैं? –
प्रश्न में कोड जोड़ें। –