2015-04-04 70 views
0

我使用BinaryFormatter序列化和反序列化來自/到本地磁盤的覆蓋對象;但是我有一個例外,那就是每次我在設計時重建我的項目。VB.Net二進制序列化異常

類型[A]是不不與型[B]可以使用,考慮到論文實例在不同的裝配至極我發現每個操作中:

C:.... \應用程序數據\本地\微軟\ VisualStudio \ 12.0 \ ProjectAssemblies

每次我重建我的項目,在那裏創建一個實例。

是否有任何可以設置BinaryFormatter更靈活的原因,因爲這些實例是VS創建的程序集與我的項目文件夾不同? 謝謝

+0

如果您的類很小,則更喜歡XML,因爲BinaryFormatter轉換是強類型的。 – 2015-04-04 22:59:03

+0

如果您試圖在一個程序集中進行序列化並在另一個程序集中進行反序列化,BinaryFormatter將不會這樣做。 [ProtoBuf-NET](https://code.google.com/p/protobuf-net/)是一個出色的替代品:更小的輸出,更快速和更大的組裝不可知 – Plutonix 2015-04-04 23:28:14

+0

Protobuf不錯,但我認爲這應該不是問題畢竟,由於VS應該能夠繞過這些問題,因爲作爲一個開發者,你對目前的應用程序感到厭煩。 – Abinonos 2015-04-05 09:04:37

回答

0

嘗試很多事情之後,我選擇了一種設計模式下檢查,以避免在Visual Studio設計系列化不相容例外:

If Not DesignMode Then 
     GWCamerasUtilities.LoadCamerasOverlay() 
End If 

我的下一個項目將在的Protobuf肯定中繼由Plutonix的建議