Ayer encontré un error en el framework .Net y encontré que es un error conocido que no se solucionará. En resumen, el fallo es que una clase que contiene un campo de la IComparable tipo no puede ser binarios y serializados deserializado cuando un int (y posiblemente otros tipos binarios) se asignan a ese campo:¿Debería solucionarse este error?
[Serializable]
public class Foo
{
public IComparable Value;
}
Si intenta serializar (y deserializar) los dos objetos siguientes el primero tendrá éxito y el segundo fallará:
var s = new Foo { Value = "foo" };
var i = new Foo { Value = 1 };
que describen con más detalle aquí: http://ondevelopment.blogspot.com/2009/11/fix-that-bug-will-ya-no.html
y el informe de error se puede encontrar aquí (tenga en cuenta que este informe es de 2006 y no lo he presentado): http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=91177
Esto no se solucionará porque "el riesgo de la solución supera su beneficio". No veo ningún escenario (valioso) en el que esto sea un cambio radical. Entonces mi verdadera pregunta es, ¿alguien puede pensar en un escenario real donde este sería un cambio radical?
Funciona correctamente con Mono/gmcs 2.0.1. – Thomas
@Thomas, eso es interesante. En realidad, esto podría ser archivado como un error con el equipo de Mono, ya que, por lo que yo sé, intentan reflejar los errores en el BCL. –
Microsoft nunca ha sido muy bueno en hacer cambios en ninguno de sus sistemas, lo que podría potencialmente romper cualquier software preexistente que dependa de lo viejo (¡hellooo, hinchazón de los sistemas operativos!). Creo que de hecho tendrías que cambiar de alguna manera a toda la compañía para arreglar esto. – Esko