0

我正在使用发送和接收小对象的 TCP/IP 协议改进现有的 WPF 项目。我正在使用 Visual Studio 10,但我被卡住了。我正在使用 BinaryFormatter 序列化对象,直到我使用同一个项目中的两个类发送和接收我没有问题,但是当我在运行时分离侦听器和发送者(TCPListener 和 TCPCLient)时,我遇到了这个错误:“可以'找不到程序集'项目名称,版本 = 1.0.0.0,文化 = 中性,PublicKeyToken = null'”。

谷歌搜索我发现问题可以通过创建从主程序调用的外部 dll 来解决,但我不知道如何将 MainWindow 传递给 dll,因为该库甚至找不到 WPF 类型(例如 MainWindow、Combobox 或 Textbox )

你能帮我解决这个 dll 问题吗?或者你有什么想法可以解决程序集引用问题吗?

4

1 回答 1

0

首先,您不应该将 MainWindow 传递给您打算序列化的类。这个数据类实际上不应该对 GUI 有任何依赖。事实上,如果你想序列化一个类,我认为它的公共接口应该只包含在同一个程序集中定义的原始类型或类。

但是,为了快速修复,如果您不想完全重写项目,我发现正确获取 WPF 库依赖项的最简单方法是启动一个新的 WPF 应用程序项目,然后将其项目类型更改为项目属性的应用程序选项卡中的 WPF 类库。

于 2013-05-05T10:19:23.673 回答