Csharp/C#教程:无法找到assembly分享


无法找到assembly

我将ArrayList序列化为二进制文件,以便通过TCP / IP发送它。 序列化文件由服务器创建,我希望能够使用我正在编写的客户端对其进行反序列化。

但是,当客户端尝试反序列化时,它会抛出一个SerializationException,因为它无法找到序列化文件开始的程序集(可能)。

我该如何解决这个问题?

您的arraylist是否包含自定义数据类型(即您自己的类)?

除非运行deserialize的代码可以访问arraylist中包含的所有类,否则不会反序列化arraylist。

如果您使用的是二进制序列化,则客户端需要访问包含您在ArrayList中序列化的类型的DLL。 我想我真的不知道你的设置来描述应该如何做,但这是它的要点。

如果您使用xml序列化(使用XmlSerializaer或DataContractSerializer)之类的东西,您将能够生成Xml。 如果您真的无法共享程序集,则可以在服务器/客户端上复制目标代码。

您要发送的数据是什么? 你是如何序列化的? 如果您使用的是BinaryFormatter ,则声明任何自定义类型的程序集必须位于两端。

请注意, BinaryFormatter存在一系列跨系统序列化的问题(包括同一系统的不同版本之间)。 您可能希望查看其他序列化程序,例如DataContractSerializer或protobuf-net (用于高效的跨平台二进制传输)。

上述就是C#学习教程:无法找到assembly分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/950153.html

(0)
上一篇 2021年11月18日
下一篇 2021年11月18日

精彩推荐