昨天我在.Net框架中發現了一個bug,發現它是一個已知的bug,不會被修復。總之錯誤是包含了IComparable接口類型的字段一個類不能是二進制序列化和反序列化時,一個int(可能還有其他二進制類型)被分配給該字段:應該修復這個bug嗎?
[Serializable]
public class Foo
{
public IComparable Value;
}
如果你嘗試序列化(和反序列化)以下兩個對象第一個將成功,第二個將失敗:
var s = new Foo { Value = "foo" };
var i = new Foo { Value = 1 };
我描述這個在這裏更詳細:http://ondevelopment.blogspot.com/2009/11/fix-that-bug-will-ya-no.html
而且bug報告,你可以在這裏找到(注意這個報告是從2006年開始,而不是由我提交):http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=91177
這不會被修復,因爲「修復的風險超過它的好處」。我沒有看到任何(收費)的情況,這將是一個突破性的變化。所以我的實際問題是,任何人都可以想到一個真正的場景,這將是一個突破性的變化?
它可以正確使用Mono/gmcs 2.0.1。 – Thomas 2009-11-07 14:58:32
@Thomas,這很有趣。實際上,這可能是Mono團隊的一個bug,因爲據我所知他們試圖反映BCL中的錯誤。 – 2009-11-07 15:13:55
微軟從來沒有做過任何改變他們的任何系統的可能性,這些系統可能會破壞任何依靠舊的東西(大量操作系統!)的預先存在的軟件。我相信你實際上必須先改變整個公司才能解決這個問題。 – Esko 2009-11-07 22:50:36