因此,我有一个服务器和一个客户端,它们来回传递各种数据。最初,我有一个复杂的方法,它遍历字节数组,并将它的所有变量和字符串一个接一个地转换成它们应该是的样子。我学习了如何将所有变量放入一个对象中,并将其转换为一个字节数组
private static byte[] ObjectToByteArray2(Object obj)
    {
        if (obj == null)
            return null;
        BinaryFormatter bf = new BinaryFormatter();
        MemoryStream ms = new MemoryStream();
        bf.Serialize(ms, obj);
        return ms.ToArray();
    }并使用以下命令将其转换回来
private static Object ByteArrayToObject(byte[] arrBytes)
    {
        MemoryStream memStream = new MemoryStream();
        BinaryFormatter binForm = new BinaryFormatter();
        memStream.Write(arrBytes, 0, arrBytes.Length);
        memStream.Seek(0, SeekOrigin.Begin);
        Object obj = (Object)binForm.Deserialize(memStream);
        return obj;
    }问题是,一旦我通过网络将这个字节数组发送到另一个应用程序,我就不能只使用这个方法将它转换回来,我得到了错误消息"Unable to find assembly 'test1s,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null‘“。test1s只是我开发的一个小服务器程序的名字。显然,应用程序需要一些额外的信息来将这个数组转换回一个对象,所以我有什么方法可以做到这一点,或者我的问题是错的吗?
我想在这里完成的是一个只有几个变量和字符串的对象,将其转换为字节数组,将其发送到另一个应用程序,并将其转换回对象。这样,我就不必使用字节数组来提取所有的变量和字符串。
谢谢
发布于 2010-11-14 12:57:35
如果发送字符串列表(或字符串字典)是您想要的,那么只需发送字符串列表(或字典)即可。您的问题出现是因为您试图发送另一个项目无法识别的数据类型。你甚至不需要改变你的任何功能,你只需要改变你发送的内容。或者,您可以从接收数据的程序引用test1s。
https://stackoverflow.com/questions/4176235
复制相似问题