串行化数据

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Text;
 4 using System.IO;
 5 using System.Runtime.Serialization;
 6 using System.Runtime.Serialization.Formatters.Binary;
 7 [Serializable]
 8 public class Product
 9 {
10     public long Id;
11     public string Name;
12     public double Price;
13 
14     [NonSerialized]
15     string Notes;
16 
17     public Product(long id, string name, double price, string notes)
18     {
19         Id = id;
20         Name = name;
21         Price = price;
22         Notes = notes;
23     }
24     public override string ToString()
25     {
26         return string.Format("{0}: {1} (${2:F2}) {3}", Id, Name, Price, Notes);
27     }
28 }
29 
30 
31 class program
32 {
33     static void Main()
34     {
35         List<Product> products = new List<Product>();
36         products.Add(new Product(1"Spiky Pung"1000.0"Good stuff."));
37         products.Add(new Product(2"Gloop Galloop Soup"25.0"Tasty."));
38         products.Add(new Product(4"Hat Sauce"12.0"One for the kids."));
39         
40         Console.WriteLine("Products to save:");
41         foreach (Product product in products)
42         {
43             Console.WriteLine(product);
44         }
45 
46         Console.WriteLine();
47         IFormatter formatter = new BinaryFormatter();
48         FileStream fs=new FileStream(@"D:\demo.dll",FileMode.Create,FileAccess.Write);
49         formatter.Serialize(fs,products);
50         fs.Dispose();
51         FileStream fs1=new FileStream(@"D:\demo.dll",FileMode.Open,FileAccess.Read);
52         //fs1.Position = 0;
53         List<Product> list= formatter.Deserialize(fs1) as List<Product>;
54         fs1.Dispose();
55         foreach (Product product in list)
56         {
57             Console.WriteLine(product);
58         }
59         Console.Read();
60 
61 
62     }
63 }
posted @ 2009-03-02 18:05  roboth  阅读(364)  评论(0)    收藏  举报