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 ArrayListNyt 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.