<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FCSharp_Tutorial%2FFile_Directory_Stream%2FSerializable_annotation</id>
		<title>Csharp/CSharp Tutorial/File Directory Stream/Serializable annotation - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FCSharp_Tutorial%2FFile_Directory_Stream%2FSerializable_annotation"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/File_Directory_Stream/Serializable_annotation&amp;action=history"/>
		<updated>2026-04-29T18:55:39Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/File_Directory_Stream/Serializable_annotation&amp;diff=6818&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/File_Directory_Stream/Serializable_annotation&amp;diff=6818&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/File_Directory_Stream/Serializable_annotation&amp;diff=6819&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/File_Directory_Stream/Serializable_annotation&amp;diff=6819&amp;oldid=prev"/>
				<updated>2010-05-26T12:20:29Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Custom Serialization==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System.Runtime.Serialization.Formatters.Soap;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Runtime.Serialization;&lt;br /&gt;
  [Serializable]&lt;br /&gt;
  class StringData : ISerializable&lt;br /&gt;
  {&lt;br /&gt;
    public string dataItemOne = &amp;quot;First&amp;quot;;&lt;br /&gt;
    public string dataItemTwo= &amp;quot;data&amp;quot;;&lt;br /&gt;
    public StringData() { }&lt;br /&gt;
    protected StringData(SerializationInfo si, StreamingContext ctx)&lt;br /&gt;
    {&lt;br /&gt;
      dataItemOne = si.GetString(&amp;quot;First&amp;quot;).ToLower();&lt;br /&gt;
      dataItemTwo = si.GetString(&amp;quot;data&amp;quot;).ToLower();&lt;br /&gt;
    }&lt;br /&gt;
    void ISerializable.GetObjectData(SerializationInfo info, StreamingContext ctx)&lt;br /&gt;
    {&lt;br /&gt;
      info.AddValue(&amp;quot;First&amp;quot;, dataItemOne.ToUpper());&lt;br /&gt;
      info.AddValue(&amp;quot;data&amp;quot;, dataItemTwo.ToUpper());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  [Serializable]&lt;br /&gt;
  class MoreData&lt;br /&gt;
  {&lt;br /&gt;
    public string dataItemOne = &amp;quot;block&amp;quot;;&lt;br /&gt;
    public string dataItemTwo = &amp;quot;data&amp;quot;;&lt;br /&gt;
    [OnSerializing]&lt;br /&gt;
    private void OnSerializing(StreamingContext context)&lt;br /&gt;
    {&lt;br /&gt;
      dataItemOne = dataItemOne.ToUpper();&lt;br /&gt;
      dataItemTwo = dataItemTwo.ToUpper();&lt;br /&gt;
    }&lt;br /&gt;
    [OnDeserialized]&lt;br /&gt;
    private void OnDeserialized(StreamingContext context)&lt;br /&gt;
    {&lt;br /&gt;
      dataItemOne = dataItemOne.ToLower();&lt;br /&gt;
      dataItemTwo = dataItemTwo.ToLower();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  class Program&lt;br /&gt;
  {&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
      MoreData myData = new MoreData();&lt;br /&gt;
      SoapFormatter soapFormat = new SoapFormatter();&lt;br /&gt;
      using (Stream fStream = new FileStream(&amp;quot;MyData.soap&amp;quot;,FileMode.Create, FileAccess.Write, FileShare.None))&lt;br /&gt;
      {&lt;br /&gt;
        soapFormat.Serialize(fStream, myData);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Serializable annotation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
  [STAThread]&lt;br /&gt;
  static void Main(string[] args)&lt;br /&gt;
  {&lt;br /&gt;
    Point p1 = new Point();&lt;br /&gt;
    p1.xpoint = 1;&lt;br /&gt;
    p1.ypoint = 2;&lt;br /&gt;
    Stream stream = File.Open(&amp;quot;point.bin&amp;quot;, FileMode.Create);&lt;br /&gt;
    BinaryFormatter bformatter = new BinaryFormatter();&lt;br /&gt;
    bformatter.Serialize(stream, p1);&lt;br /&gt;
    stream.Close();&lt;br /&gt;
    Stream openStream = File.Open(&amp;quot;point.bin&amp;quot;, FileMode.Open);&lt;br /&gt;
    Point desierializedPoint = new Point();&lt;br /&gt;
    desierializedPoint = (Point)bformatter.Deserialize(openStream);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
[Serializable()]&lt;br /&gt;
class Point&lt;br /&gt;
{&lt;br /&gt;
  public int xpoint;&lt;br /&gt;
  public int ypoint;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Serialize a list of objects==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Runtime.Serialization;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            List&amp;lt;Product&amp;gt; products = new List&amp;lt;Product&amp;gt;();&lt;br /&gt;
            products.Add(new Product(1, &amp;quot;A&amp;quot;, 10.0, &amp;quot;A.&amp;quot;));&lt;br /&gt;
            products.Add(new Product(2, &amp;quot;B&amp;quot;, 25.0, &amp;quot;B.&amp;quot;));&lt;br /&gt;
            products.Add(new Product(4, &amp;quot;C&amp;quot;, 12.0, &amp;quot;C.&amp;quot;));&lt;br /&gt;
            IFormatter serializer = new BinaryFormatter();&lt;br /&gt;
            FileStream saveFile =new FileStream(&amp;quot;Products.bin&amp;quot;, FileMode.Create, FileAccess.Write);&lt;br /&gt;
            serializer.Serialize(saveFile, products);&lt;br /&gt;
            saveFile.Close();&lt;br /&gt;
            FileStream loadFile =new FileStream(&amp;quot;Products.bin&amp;quot;, FileMode.Open, FileAccess.Read);&lt;br /&gt;
            List&amp;lt;Product&amp;gt; savedProducts = serializer.Deserialize(loadFile) as List&amp;lt;Product&amp;gt;;&lt;br /&gt;
            loadFile.Close();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    [Serializable]&lt;br /&gt;
    public class Product&lt;br /&gt;
    {&lt;br /&gt;
        public long Id;&lt;br /&gt;
        public string Name;&lt;br /&gt;
        public double Price;&lt;br /&gt;
        [NonSerialized]&lt;br /&gt;
        string Notes;&lt;br /&gt;
        public Product(long id, string name, double price, string notes)&lt;br /&gt;
        {&lt;br /&gt;
            Id = id;&lt;br /&gt;
            Name = name;&lt;br /&gt;
            Price = price;&lt;br /&gt;
            Notes = notes;&lt;br /&gt;
        }&lt;br /&gt;
        public override string ToString()&lt;br /&gt;
        {&lt;br /&gt;
            return string.Format(&amp;quot;{0}: {1} (${2:F2}) {3}&amp;quot;, Id, Name, Price, Notes);&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Serialize objects==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Runtime.Serialization.Formatters.Binary;&lt;br /&gt;
    [Serializable]&lt;br /&gt;
    public class Person&lt;br /&gt;
    {&lt;br /&gt;
        public Person()&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
        public int Age { get; set; }&lt;br /&gt;
        public int WeightInPounds { get; set; }&lt;br /&gt;
    }&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Serialize();&lt;br /&gt;
            DeSerialize();&lt;br /&gt;
        }&lt;br /&gt;
        public static void Serialize()&lt;br /&gt;
        {&lt;br /&gt;
            Person me = new Person();&lt;br /&gt;
            me.Age = 40;&lt;br /&gt;
            me.WeightInPounds = 200;&lt;br /&gt;
            Stream s = File.Open(&amp;quot;Me.dat&amp;quot;, FileMode.Create);&lt;br /&gt;
            BinaryFormatter bf = new BinaryFormatter();&lt;br /&gt;
            bf.Serialize(s, me);&lt;br /&gt;
            s.Close();&lt;br /&gt;
        }&lt;br /&gt;
        public static void DeSerialize()&lt;br /&gt;
        {&lt;br /&gt;
            Stream s = File.Open(&amp;quot;Me.dat&amp;quot;, FileMode.Open);&lt;br /&gt;
            BinaryFormatter bf = new BinaryFormatter();&lt;br /&gt;
            object o = bf.Deserialize(s);&lt;br /&gt;
            Person p = o as Person;&lt;br /&gt;
            s.Close();&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>