Nyt ei ajatus juokse:
Minulla on kaksi vb.net (2003) sovellusta, toinen tekee listan sanoista ja niiden esiintymisistä eri tiedostoissa:
Dim muotoilija As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter Dim fstream As New System.IO.FileStream _ (txtPolku.Text, IO.FileMode.Create) muotoilija.Serialize(fstream, sanalista) fstream.Close()
ja toinen sovellus yrittää lukea tuon filen vastaavaan tietorakenteeseen:
Dim muotoilija As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter Dim fstream As New System.IO.FileStream _ (Application.StartupPath & "\indeksi.bin", IO.FileMode.Open, IO.FileAccess.Read) sanalista = CType(muotoilija.Deserialize(fstream), ArrayList) fstream.Close()
Määrittelyt molemmissa ohjelmissa on seuraavat:
<Serializable()> Public Class cSanaInfo Public sana As String Public tiedostot() As String End Class Public sanalista As New ArrayList
Nyt ongelma on että ilmeisesti binaryformatter serialisoi myös sovelluksen assembly-tietoja ks. tiedostoon, eikä lukija ohjelmani suostukaan tällä tavalla lukaisemaan tiedostoa assembly-ristiriidan takia? Olenko ymmärtänyt oikein, ja jos näin, miten korjaan ongelman? En oikein haluaisi puuttua assembly-tietoihin, vaan hoitaa asian nätisti koodista. Kyseinen tiedosto on binääriserialisoinnilla kolme megaa, mutta jos laitan sen xml-muotoon, jossa sain toimimaan, koko on jo melkein neljätoista megaa, mikä ei ole hyväksyttävä koko.
Virheilmoitusta voi ihastella osoitteessa:
http://www.esakom.net/ongelma.gif
Aihe on jo aika vanha, joten et voi enää vastata siihen.