Posted on 2009-07-08 09:55
Hero 阅读(115)
评论(0) 编辑 收藏 引用 所属分类:
C#积累
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 using System.IO;
6 using System.Runtime.Serialization;
7 using System.Runtime.Serialization.Formatters.Binary;
8
9 namespace Serialize_test
10 {
11 class Program
12 {
13 static void Main( string[] args )
14 {
15 try
16 {
17 //create products
18 List<Product> products = new List<Product>();
19 products.Add( new Product( 1, "wang", 100, "good1" ) );
20 products.Add( new Product( 2, "zhao", 200, "good2" ) );
21 products.Add( new Product( 4, "ren", 300, "good3" ) );
22
23 Console.WriteLine( "Products to save :" );
24
25 foreach ( Product product in products )
26 {
27 Console.WriteLine( product );
28 }
29 Console.WriteLine();
30
31 //get serializer
32 IFormatter serializer = new BinaryFormatter();
33
34 //serializer products
35 FileStream saveFile = new FileStream( "Products.bin", FileMode.Create, FileAccess.Write );
36 serializer.Serialize( saveFile, products );
37 saveFile.Close();
38
39 //deserializer
40 FileStream loadFile = new FileStream( "Products.bin", FileMode.Open, FileAccess.Read );
41 List<Product> saveProducts = serializer.Deserialize( loadFile ) as List<Product>;
42 loadFile.Close();
43
44 Console.WriteLine( "Products loaded :" );
45 foreach ( Product product in saveProducts )
46 {
47 Console.WriteLine( product );
48 }
49
50 }
51 catch (SerializationException ex)
52 {
53 Console.WriteLine( ex.Message );
54 }
55 catch ( IOException ex )
56 {
57 Console.WriteLine( ex.ToString() );
58 }
59
60 }
61 }
62 }
63
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace Serialize_test
6 {
7 [Serializable]
8 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
25 public override string ToString()
26 {
27 return string.Format( "{0}:{1}(${2:F2}){3}", ID, Name, Price, Notes );
28 }
29 }
30 }
31