1. 程式人生 > >關於序列化的錯誤

關於序列化的錯誤

 Type 'ZAirCompany' in Assembly
   'Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
   is not marked as serializable.
  
   錯誤原因:
  這個輸入引數宣告為“ZAirCompany”類,它沒有做序列化。
  [解決1]很簡單。
  在“ZAirCompany”類前面加一行:
  [Serializable]
  [背景資料1]Piet Obermeyer的《.NET 中的物件序列化》講解得非常詳細:
   微軟資料
  
   由正在進行序列化的物件所引用的所有物件都必須標記為 Serializable(請參閱基本序列化)。否則,當序列化程式試圖序列化未標記的物件時將會出現異常。
  
  
   物件僅在建立物件的應用程式域中有效。除非物件是從 MarshalByRefObject 派生得到或標記為 Serializable,否則,任何將物件作為引數傳遞或將其作為結果返回的嘗試都將失敗。如果物件標記為 Serializable,則該物件將被自動序列化,並從一個應用程式域傳輸至另一個應用程式域,然後進行反序列化,從而在第二個應用程式域中產生出該物件的一個精確副本。此過程通常稱為按值封送。