问个序列化问题
[Serializable] 
 class   A 
 { 
 private   String   _path; 
 public   A()   {} 
 }   
 [Serializable] 
 class   B:   ObservableCollection <A> ,ISerializable    
 { 
 public   B(){}   
 #region   ISerializable   成员 
 public   void   GetObjectData(SerializationInfo   info,   StreamingContext   context) 
                         { 
                                     //???????????????????这里该怎么写????????????????? 
                         } 
 #endregion 
 }   
 class   C 
 { 
 private   String   _strFile; 
 private   B   _items   =   new   B();; 
 public   C(){}   
 public   void   FromFile 
 { 
 ............. 
 }   
 public   void   ToFile 
 { 
 try 
 { 
             using   (FileStream   fs   =   new   FileStream(_strFile,   FileMode.Create)) 
             { 
                         BinaryFormatter   formatter   =   new   BinaryFormatter(); 
                         formatter.Serialize(fs,   _items); 
             } 
 } 
 catch   (SerializationException   e) 
 { 
 } 
 }   
 ObservableCollection <T> 内部有些成员不能被序列化,   所以才使用了ISerializable, 
 问题是B.GetObjectData(...)该怎么写,   才能将C._items顺利序列化和反序列化?
------解决方案--------------------=========================== 
 //静态方法Serialize,将一个对象序列化为一个文件 
         public static void Serialize(object data, string filePath) 
         {   try 
             { 
                 //打开文件 
                 StreamWriter fs = new StreamWriter(filePath, false); 
                 try 
                 { 
                     // 创建其支持存储区为内存的流 
                     MemoryStream streamMemory = new MemoryStream(); 
                     // 以二进制格式将对象或整个连接对象图形序列化或反序列化 
                     BinaryFormatter formater = new BinaryFormatter(); 
                     //将这个对象序列化到内存流中 
                     formater.Serialize(streamMemory, data); 
                     //先转换为字符串的形式 
                     string binaryData = Convert.ToBase64String(streamMemory.GetBuffer());                      
                     //将数据 写入到文件 
                     fs.Write(binaryData); 
                 } 
                 catch (Exception ex) 
                 { 
                     throw ex; 
                 } 
                 finally 
                 { 
                     fs.Flush(); 
                     fs.Close(); 
                 } 
             } 
             catch(Exception ex) 
             { 
                 throw ex; 
             }