2010-09-19 28 views
2

我已閱讀了許多類似的問題和對此主題的解答,但仍不確定爲什麼我會遇到此問題。試圖反序列化時,「無法找到程序集」,從客戶端到服務器但不是其他方式

我有一個客戶端和服務器項目,都使用我創建的相同的DLL庫。 當我序列化客戶端上的一個對象時,我沒有任何問題反序列化它在服務器上,但是當我試圖在服務器上序列化它時在客戶端上反序列化它時,它會拋出一個「無法找到程序集」異常。

序列化和反序列化的代碼在客戶端和服務器上都是相同的,他們都知道和使用相同的dll, 任何想法可能會導致問題?

+0

dll的版本是否一樣? – Giorgi 2010-09-19 12:10:22

+0

是,相同版本,它是客戶端和服務器解決方案的一部分。 – Nadav 2010-09-19 12:59:37

回答

2

看看AppDomain.AssemblyResolve事件。

+1

太棒了!解決了這個問題,非常感謝:) – Nadav 2010-09-19 12:56:21

+0

通過根據msdn上的示例實現AssemblyResolve事件來解決。 – Nadav 2010-09-19 13:00:23

0

還有其他什麼可能蔓延到模型?一個典型的例子是事件; BinaryFormatter包含事件圖表,這會導致各種意想不到的事情被包含在內。如果您事件,標誌着支持字段爲[非序列化],或現場樣事件:

[field: NonSerialized] 
public event SomeType Foo; 

或者更好的,使用這並不包括事件圖表串行。

+0

在我的自定義對象中沒有事件,無論如何解決了問題,但thx :) – Nadav 2010-09-19 12:58:34

相關問題