xplorer87
18-12-2008, 21:08
Ciao ragazzi ^^
provo a spiegarvi il mio problema: ho un'applicazione con due finestre, ognuna delle quali ha un bottone, rispettivamente salva e apri. quella con salva serializza un oggetto su file, quella con apri lo deserializza; il tutto avviene tramite l'uso dei form OpenFileDialog e SaveFileDialog. Durante la serializzazione non ho particolari problemi: il file viene serializzato correttamente. Durante la deserializzazione però, viene lanciata la SerializationException con il messaggio "Impossibile trovare l'assembly <nome del mio assembly>".
codice della serializzazione:
//Crea l'oggetto ResultsToSerialize
MioOggetto resultsToSerialize;
// istanzio l'oggetto
IFormatter binaryFormatter = new BinaryFormatter();
Stream fileStream = new FileStream(saveFileDialog1.FileName, FileMode.Create, FileAccess.Write, FileShare.None);
binaryFormatter.Serialize(fileStream, resultsToSerialize);
fileStream.Close();
la deserializzazione viene effettuata in questa maniera:
MioOggetto resultsToSerialize;
IFormatter binaryFormatter = new BinaryFormatter();
Stream fileStream = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read, FileShare.None);
MessageBox.Show("filestream creato");
try
{
resultsToSerialize = (MioOggetto)(binaryFormatter.Deserialize(fileStream));
}
catch (SerializationException se)
{
MessageBox.Show("SE: " + se.Message);
}
finally
{
fileStream.Close();
}
ho provato a cercare un po' in internet e si dice un po' tutto e il contrario di tutto; qualcuno diceva che era un problema del framework .NET 1.5 (ma io ho il 3.5), altri che era un problema del binaryFormatter che inserisce in ogni file serializzato una stringa univoca (??) che rende impossibile la deserializzazione in ogni altra istanza di classe che non sia quella che ha serializzato l'oggetto, altri ancora che l'errore dell'assembly non trovato era dovuto al fatto che si provava a serializzare/deserializzare in due applicazioni diverse (non mi sembra il mio caso, in quanto ad essere diverse sono solo le finestre).
qualcuno ha idea di cosa possa essere?
grazie a tutti :)
provo a spiegarvi il mio problema: ho un'applicazione con due finestre, ognuna delle quali ha un bottone, rispettivamente salva e apri. quella con salva serializza un oggetto su file, quella con apri lo deserializza; il tutto avviene tramite l'uso dei form OpenFileDialog e SaveFileDialog. Durante la serializzazione non ho particolari problemi: il file viene serializzato correttamente. Durante la deserializzazione però, viene lanciata la SerializationException con il messaggio "Impossibile trovare l'assembly <nome del mio assembly>".
codice della serializzazione:
//Crea l'oggetto ResultsToSerialize
MioOggetto resultsToSerialize;
// istanzio l'oggetto
IFormatter binaryFormatter = new BinaryFormatter();
Stream fileStream = new FileStream(saveFileDialog1.FileName, FileMode.Create, FileAccess.Write, FileShare.None);
binaryFormatter.Serialize(fileStream, resultsToSerialize);
fileStream.Close();
la deserializzazione viene effettuata in questa maniera:
MioOggetto resultsToSerialize;
IFormatter binaryFormatter = new BinaryFormatter();
Stream fileStream = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read, FileShare.None);
MessageBox.Show("filestream creato");
try
{
resultsToSerialize = (MioOggetto)(binaryFormatter.Deserialize(fileStream));
}
catch (SerializationException se)
{
MessageBox.Show("SE: " + se.Message);
}
finally
{
fileStream.Close();
}
ho provato a cercare un po' in internet e si dice un po' tutto e il contrario di tutto; qualcuno diceva che era un problema del framework .NET 1.5 (ma io ho il 3.5), altri che era un problema del binaryFormatter che inserisce in ogni file serializzato una stringa univoca (??) che rende impossibile la deserializzazione in ogni altra istanza di classe che non sia quella che ha serializzato l'oggetto, altri ancora che l'errore dell'assembly non trovato era dovuto al fatto che si provava a serializzare/deserializzare in due applicazioni diverse (non mi sembra il mio caso, in quanto ad essere diverse sono solo le finestre).
qualcuno ha idea di cosa possa essere?
grazie a tutti :)