Ho trovato un bug nel framework .Net ieri e ho scoperto che si tratta di un bug noto che non verrà risolto. In breve, il bug è che una classe che contiene un campo di tipo IComparable non può essere binario serializzato e deserializzato quando un int (ed eventualmente altri tipi di binari) sono assegnati a quel campo:Questo bug dovrebbe essere risolto?
[Serializable]
public class Foo
{
public IComparable Value;
}
Se si tenta per serializzare (e deserializzare) i seguenti due oggetti il primo avrà successo e la seconda avrà esito negativo:
var s = new Foo { Value = "foo" };
var i = new Foo { Value = 1 };
ho descritto più in dettaglio qui: http://ondevelopment.blogspot.com/2009/11/fix-that-bug-will-ya-no.html
e la segnalazione di bug si possono trovare qui (notare che questo rapporto è del 2006 e non è stato archiviato da me): http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=91177
Questo non verrà risolto perché "il rischio della correzione supera il suo vantaggio". Non riesco a vedere nessuno scenario (a pagamento) in cui questo sarebbe un cambiamento irrisolto. Quindi la mia domanda attuale è: qualcuno può pensare a uno scenario reale in cui questo sarebbe un cambiamento decisivo?
Funziona correttamente con Mono/gmcs 2.0.1. – Thomas
@Thomas, è interessante. In realtà questo potrebbe essere archiviato come un bug con il team di Mono, quindi da quando so che cercano di rispecchiare i bug nel BCL. –
Microsoft non ha mai avuto grandi possibilità di apportare modifiche a nessuno dei propri sistemi, il che potrebbe potenzialmente interrompere qualsiasi software preesistente facendo affidamento sulle vecchie cose (ciaooo, un sacco di sistemi operativi!). Credo che in un primo momento dovresti in qualche modo cambiare l'intera azienda per risolvere il problema. – Esko