2013-05-05 51 views
0

我改善與發送和接收小物件一個TCP/IP協議的存在的WPF項目。我正在使用Visual Studio 10,但我被卡住了。 我使用BinaryFormatter的序列化對象,直到我用來發送和在同一個項目中,我有沒有問題,有兩個班接受,但是當我上運行分離的監聽器和發送器(的TCPListener和TcpClient的)我有這個錯誤: 「找不到Assembly'ProjectName,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'」。Visual Studio的WPF大會和DLL解決

使用谷歌搜索我發現,問題可以解決創建一個外部的DLL從主程序調用,但我不知道如何將MainWindow傳遞給DLL,因爲該庫甚至不能找到WPF類型(如MainWindow ,組合框或文本框)

你能幫我這個DLL問題,或者你有什麼想法解決程序集引用問題?

回答

0

首先,你不應該在主窗口傳遞給你打算序列化的類。這個數據類實際上不應該對GUI有任何依賴關係。事實上,如果你想序列化一個類,它的公共接口在我看來應該只包含在同一個程序集中定義的原始類型或類。

但是,爲了快速解決問題,如果您不想完全重寫項目,我發現獲取WPF庫的依賴關係的最簡單方法是啓動新的WPF應用程序項目,然後更改其項目類型轉換爲項目屬性的應用程序選項卡中的WPF類庫。

+0

感謝您的回答。 我按照你的建議,但我明白這個問題是在其他地方。 我讀過想反序列化的格式相同的dll的簽名,所以我創建了一個外部的dll誰提供構建的BinaryFormatter並在每個程序路徑導出它。 通過這種方式,每個應用程序實例都將在兩個BinaryFormatter上找到相同的簽名,並在「安全」模式下執行序列化/反序列化。 我覺得這有點棘手(爲什麼不允許強制反序列化),但解決。 感謝您的可用性! – user2351528 2013-07-18 13:00:50

相關問題