मुझे कल नेट फ्रेमवर्क में एक बग मिला और पाया कि यह एक ज्ञात बग है जिसे ठीक नहीं किया जाएगा। संक्षेप में बग है कि एक वर्ग है कि प्रकार IComparable के एक क्षेत्र शामिल हैं द्विआधारी धारावाहिक नहीं हो सकता है और deserialized कर सकते हैं जब किसी पूर्णांक (और संभवतः अन्य द्विआधारी प्रकार) है कि क्षेत्र में रख दिया जाता है:क्या यह बग ठीक किया जाना चाहिए?
[Serializable]
public class Foo
{
public IComparable Value;
}
आप का प्रयास करें क्रमानुसार करने (और deserialize) निम्नलिखित दो वस्तुओं पहले एक सफल होगा और दूसरा एक असफल हो जायेगी: http://ondevelopment.blogspot.com/2009/11/fix-that-bug-will-ya-no.html
और बग रिपोर्ट आप यहाँ पा सकते हैं:
var s = new Foo { Value = "foo" };
var i = new Foo { Value = 1 };
मैं और अधिक विस्तार यहाँ में इस का वर्णन (ध्यान दें कि यह रिपोर्ट 2006 से है और मेरे द्वारा दायर नहीं किया गया है): http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=91177
यह तय नहीं किया जाएगा क्योंकि "फिक्स का जोखिम इसके लाभ से अधिक है"। मैं किसी भी (फीसबल) परिदृश्य को देखने में असफल रहा जहां यह एक तोड़ने वाला बदलाव होगा। तो मेरा वास्तविक सवाल यह है कि क्या कोई वास्तविक परिदृश्य के बारे में सोच सकता है जहां यह एक तोड़ने वाला परिवर्तन होगा?
यह मोनो/जीएमसीएस 2.0.1 के साथ सही ढंग से काम करता है। – Thomas
@ थॉमस, यह दिलचस्प है। असल में यह मोनो टीम के साथ एक बग के रूप में दायर किया जा सकता है, जहां तक मुझे पता है कि वे बीसीएल में बग को दर्पण करने का प्रयास करते हैं। –
माइक्रोसॉफ्ट कभी भी अपने किसी भी सिस्टम में बदलाव करने पर बड़ा नहीं रहा है जो पुराने सामान (नरक, ऑपरेटिंग सिस्टम के ब्लोट) पर निर्भर किसी भी पूर्व-मौजूदा सॉफ्टवेयर को संभावित रूप से तोड़ सकता है। मेरा मानना है कि आपको यह तय करने के लिए वास्तव में पूरी कंपनी को किसी भी तरह बदलना होगा। – Esko