<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_5._fejezet</id>
	<title>Szoftverfejlesztés .NET platformon - Jegyzet 5. fejezet - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_5._fejezet"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_5._fejezet&amp;action=history"/>
	<updated>2026-05-18T00:57:40Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_5._fejezet&amp;diff=165776&amp;oldid=prev</id>
		<title>Hryghr: Hryghr átnevezte a(z) Szoftverfejlesztés .NET plattformon - Jegyzet 5. fejezet lapot a következő névre: Szoftverfejlesztés .NET platformon - Jegyzet 5. fejezet: pontos név</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_5._fejezet&amp;diff=165776&amp;oldid=prev"/>
		<updated>2013-05-19T21:27:35Z</updated>

		<summary type="html">&lt;p&gt;Hryghr átnevezte a(z) &lt;a href=&quot;/index.php?title=Szoftverfejleszt%C3%A9s_.NET_plattformon_-_Jegyzet_5._fejezet&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Szoftverfejlesztés .NET plattformon - Jegyzet 5. fejezet (a lap nem létezik)&quot;&gt;Szoftverfejlesztés .NET plattformon - Jegyzet 5. fejezet&lt;/a&gt; lapot a következő névre: &lt;a href=&quot;/Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_5._fejezet&quot; title=&quot;Szoftverfejlesztés .NET platformon - Jegyzet 5. fejezet&quot;&gt;Szoftverfejlesztés .NET platformon - Jegyzet 5. fejezet&lt;/a&gt;: pontos név&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;hu&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Régebbi változat&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;A lap 2013. május 19., 23:27-kori változata&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;hu&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Nincs különbség)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key my_wiki:diff:1.41:old-156932:rev-165776 --&gt;
&lt;/table&gt;</summary>
		<author><name>Hryghr</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_5._fejezet&amp;diff=156932&amp;oldid=prev</id>
		<title>David14: David14 átnevezte a(z) Serialization lapot a következő névre: Szoftverfejlesztés .NET plattformon - Jegyzet 5. fejezet</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_5._fejezet&amp;diff=156932&amp;oldid=prev"/>
		<updated>2013-02-05T22:01:30Z</updated>

		<summary type="html">&lt;p&gt;David14 átnevezte a(z) &lt;a href=&quot;/index.php?title=Serialization&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Serialization (a lap nem létezik)&quot;&gt;Serialization&lt;/a&gt; lapot a következő névre: &lt;a href=&quot;/index.php?title=Szoftverfejleszt%C3%A9s_.NET_plattformon_-_Jegyzet_5._fejezet&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Szoftverfejlesztés .NET plattformon - Jegyzet 5. fejezet (a lap nem létezik)&quot;&gt;Szoftverfejlesztés .NET plattformon - Jegyzet 5. fejezet&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;hu&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Régebbi változat&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;A lap 2013. február 6., 00:01-kori változata&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;hu&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Nincs különbség)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key my_wiki:diff:1.41:old-145911:rev-156932 --&gt;
&lt;/table&gt;</summary>
		<author><name>David14</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_5._fejezet&amp;diff=145911&amp;oldid=prev</id>
		<title>Unknown user: Új oldal, tartalma: „{{GlobalTemplate|Valaszthato|MCP70-536Serialization}}   70-536 .NET framework 2.0 Application Development Foundation   %TOC{depth=&quot;3&quot;}%  &lt;div id=&quot;BinaryFormatter&quot;&gt;&lt;/div…”</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_5._fejezet&amp;diff=145911&amp;oldid=prev"/>
		<updated>2012-10-22T11:43:56Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „{{GlobalTemplate|Valaszthato|MCP70-536Serialization}}   70-536 .NET framework 2.0 Application Development Foundation   %TOC{depth=&amp;quot;3&amp;quot;}%  &amp;lt;div id=&amp;quot;BinaryFormatter&amp;quot;&amp;gt;&amp;lt;/div…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GlobalTemplate|Valaszthato|MCP70-536Serialization}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
70-536 .NET framework 2.0 Application Development Foundation &lt;br /&gt;
&lt;br /&gt;
%TOC{depth=&amp;quot;3&amp;quot;}%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;BinaryFormatter&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Bináris sorosítás==&lt;br /&gt;
&lt;br /&gt;
=System.Runtime.Serialization.Formatters.Binary.BinaryFormatter=: gyors, kicsi kimenetet ad, nem cross-platform. A privát változókat is sorosítja. A sorosítandó osztályokat =[Serializable]= attribútummal kell ellátni.&lt;br /&gt;
&lt;br /&gt;
Használható attribútumok:&lt;br /&gt;
* =[NonSerialized]=: a változót nem kell sorosítani&lt;br /&gt;
&lt;br /&gt;
Sorosítás lépései (általános sorosítás esetén is igaz)&lt;br /&gt;
# Stream nyitása&lt;br /&gt;
# Formatter létrehozása&lt;br /&gt;
# sorosítás&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
string data = &amp;quot;This must be stored in a file.&amp;quot;;&lt;br /&gt;
FileStream fs = new FileStream(&amp;quot;SerializedString.Data&amp;quot;, FileMode.Create);&lt;br /&gt;
BinaryFormatter bf = new BinaryFormatter();&lt;br /&gt;
bf.Serialize(fs, data);&lt;br /&gt;
fs.Close();&lt;br /&gt;
&lt;br /&gt;
FileStream fs = new FileStream(&amp;quot;SerializedString.Data&amp;quot;, FileMode.Open);&lt;br /&gt;
BinaryFormatter bf = new BinaryFormatter();&lt;br /&gt;
string data = (string) bf.Deserialize(fs);&lt;br /&gt;
fs.Close();&lt;br /&gt;
Console.WriteLine(data);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;SoapFormatter&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==SOAP sorosítás==&lt;br /&gt;
&lt;br /&gt;
=System.Runtime.Serialization.Formatters.Soap.SoapFormatter=: kicsit lassabb, sokkal nagyobb kimenet. Cross-platform, de a .NET 1.1 és a 2.0 között csak részben kompatibilis. Referenciát kell hozzáadni a projekthez.&lt;br /&gt;
&lt;br /&gt;
Használható attribútumok:&lt;br /&gt;
* =[SoapIgnore]=: ne sorosítsa a mezőt&lt;br /&gt;
* =[SoapElement]=, =[SoapAttribute]=: XML attribútumként vagy elementként sorosítson&lt;br /&gt;
* =[SoapEnum]=: felsoroláshoz tartozó tag név&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;XmlSerializer&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==XML sorosítás==&lt;br /&gt;
&lt;br /&gt;
=System.Xml.Serialization.XmlSerializer=: egyedi XML file-ba lehet vele sorosítani. Csak default konstruktorral rendelkező publikus osztályokra működik, és csak a publikus adattagokat sorosítja. Nem szükséges =[Serializable]= attribútum. A sorosított objektumnak körmentesnek kell lennie.&lt;br /&gt;
&lt;br /&gt;
Előnyei:&lt;br /&gt;
* Interoperabilitás: legtöbb nyelvvel könnyű értelmezni a kapott XML-t&lt;br /&gt;
* Könnyű adminisztráció: szöveges formátumú, ezért bármivel szerkeszthető&lt;br /&gt;
* Egy osztály különböző verziói könnyen kompatibilissá tehetők sorosítás szempontjából&lt;br /&gt;
&lt;br /&gt;
Használható attribútumok:&lt;br /&gt;
* =[XmlIgnore]=, =[XmlElement]=, =[XmlAttribute]=, =[XmlEnum]=: mint a SOAP-nál&lt;br /&gt;
* =[XmlText]=: XML szövegként sorosítsa a mezőt&lt;br /&gt;
* =[XmlArray]=, =[XmlArrayItem]=: kollekcióhoz és elemeihez tartozó tag neve&lt;br /&gt;
* =[XmlAnyAttribute]=, =[XmlAnyElement]=: a sorosítás során nem felismert attribútumokat és elementeket ezekbe a tömbökbe gyűjti&lt;br /&gt;
* =[XmlRoot]=: XML gyökér elementjének neve&lt;br /&gt;
* =[XmlType]=: XML névtere&lt;br /&gt;
XML Schema-ból lehet osztály vázakat generálni az xsd.exe-vel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;custom_serialization&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Egyedi sorosítás==&lt;br /&gt;
&lt;br /&gt;
* Az osztályt el kell látni =[Serializable]= attribútummal.&lt;br /&gt;
* Implementálni kell az =ISerializable= interfész&lt;br /&gt;
	  =GetObjectData(SerializationInfo info, StreamingContext context)= metódusát.&lt;br /&gt;
	  A =SerializationInfo= név-érték párokat tartalmaz.&lt;br /&gt;
* Ugyanezen paraméterekkel írni kell egy konstruktort (ajánlott láthatósági szint: protected).&lt;br /&gt;
** olvasás: =info.GetInt32(kulcs)=, stb.&lt;br /&gt;
** írás: =info.AddValue(kulcs, érték)=&lt;br /&gt;
** deszerializáció helye: =StreamingContext.State=.&lt;br /&gt;
		  Értékei: =CrossProcess=, =CrossMachine=, =File=, =Persistence=, ...&lt;br /&gt;
* Hibás bemenet esetén &amp;lt;pre&amp;gt;SerializationException&amp;lt;/pre&amp;gt;-t kell dobni.&lt;br /&gt;
&lt;br /&gt;
Sorosított adatok egyedi formázása&lt;br /&gt;
* =IFormatter= vagy =IGenericFormatter= interfészt kell implementálni.&lt;br /&gt;
* Az implementációt egyszerűsíti, ha felhasználjuk a =FormatterServices= osztály metódusait.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;serialization_events&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Sorosítási események==&lt;br /&gt;
&lt;br /&gt;
Sorrendben:&lt;br /&gt;
* =[Serializing]=: sorosítás előtt&lt;br /&gt;
* =[Serialized]=: sorosítás után&lt;br /&gt;
* =[Deserializing]=: visszaállítás előtt&lt;br /&gt;
* =[Deserialized]=: visszaállítás után&lt;br /&gt;
** Mindegyiket =void (StreamingContext)= típusú metódus elé kell írni&lt;br /&gt;
* =IDeserializationCallback.OnDeserialization=: legvégén, itt kell visszaállítani a számolt értékeket.&lt;br /&gt;
** A könyvben az ábrán rosszul szerepel, a .NET Reflectorral lehet ellenőrizni a sorrendet.&lt;br /&gt;
** =void IDeserializationCallback.OnDeserialization(Object sender) { ... }=&lt;br /&gt;
&lt;br /&gt;
-- [[PallosPeter|Peti]] - 2007.06.27.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Valaszthato]]&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>