Co vlastne robi?? pozeral som priklady na msdn, videl som serializovane kolekcie, ale este stale nejak neviem pochopit naco ta serializacia sluzi
Fórum › .NET
Serializacia
Instance, které při programování vytvoříš mají poměrně krátkou životnos - když na ně nevede žádná reference, tak je GC zlikviduje. Když potřebuješ uchovat instanci delší dobu, v takovém případě je vhodné instanci seralizovat - dojde k převedení instance na Stream a uložení na nějaké presistentní úložiště (soubor, db). Klidně můžeš takovou instanci poslat na jiné PC. Opačným krokem je desrializace.
Ještě bych mohl popsat xml serializaci, ale ta ve své podstatě dělá totéž, ale řekl bych, že je nejvhodnější pro kolekce (musí to umožňovat) - dojde k uložení obsahu do xml souboru a následně je možné ho načíst zpět.
Pochopil jsi to v podstatě správně. Jde to jen pokud je typ označen jako Serializable nebo pokud implementuje rozhraní ISerializable (pokročilejší způsob, který si kdyžtak dohledej na netu). Jinak jsi už určitě zjistil, že serializace a deserializace se provadí prostřednictvím typu BinaryFormatter.
/// <summary>
/// Serializovatelná třída
/// </summary>
[Serializable]
public class Trida
{
// zbytek tridy
}
JJ ... SoapFormatter se dá taky použít, ale ten ti to v podstatě serializuje do XML, ale nevím přesně k čemu to ve výsledku je - dá se předpokládat, že je vhodný ho nějak použít při práci se SOAP a webovými službami.
Zastavam nazor, ze najlepsie sa uci zo zdrojakov... Tu je jeden... Ak najdete chybu, prosim opravte ma :) dik....
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
Dim obj As New ArrayList
obj.Add("a")
obj.Add("b")
obj.Add("c")
Dim Instancia As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
Dim str As New System.IO.FileStream("C:\Ulozisko.dat", IO.FileMode.Create)
Instancia.Serialize(str, obj)
str.Close()
End Sub
Sub Me_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Click
Dim bfg As New ArrayList
Dim Instancia As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
Dim nieco As New System.IO.FileStream("C:\Ulozisko.dat", IO.FileMode.OpenOrCreate)
bfg = Instancia.Deserialize(nieco)
For Each Polozka As String In bfg
MsgBox(Polozka.ToString)
Next
End Sub
Skus si ho a mozno uplne pochopis, na co sluzi serializacia :-) Ako vidis zvolil som subor typu *.dat . Ktovie preco...... :-))
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Serializacia a deserializácia objektu — založil Xgamer
Moderátoři diskuze