2010-04-01 22 views
0

我開發.NET Framework應用程序,允許用戶維護和保存「項目」。一個項目可以包括其類型框架本身和/或第三方組件將通過一個尚未將要建造的插件架構提供給該框架的組件定義的組件。當一個項目被保存時,它被簡單地二進制序列化爲文件。處理類型不再可用

項目是可移植的,所以多個用戶可以在同一個項目加載到自己的框架的情況下(就像不同的用戶可以打開的MSWord自己的本地副本相同的MSWord文件)。更重要的是,一個用戶框架可用的插件可能不適用於其他用戶。

我需要某種方式來確保當用戶試圖打開(即反序列化)包含無法找到定義程序集的類型的項目(或者是因爲框架版本不兼容或缺少插件) ,該項目仍然開放,但違規類型被替換或省略。麻煩的是,我迄今爲止所做的研究甚至沒有提供適當的方法。任何想法將不勝感激,謝謝。

回答

0

你需要使用反射來使自己的串行器。

+0

是啊,我想知道這一點,但真的不想去那裏。也就是說,我還需要減少項目的序列化腳印 - 這是定製串行器的另一個原因。感謝您的迴應。 – Chris 2010-04-01 15:07:36

0

這個問題是深深依賴於你的架構。接口和依賴注入用於實現您描述的「可插拔」架構,但只有您可以確定如何從不可用的類型定義中「恢復」。您的設計需要考慮到項目的任何組件可能無法加載的事實。