Преобразовать объект в байтовый массив на C #, отправить его через сокет, а затем преобразовать обратно в объект

Итак, у меня есть сервер и клиент, которые передают различные данные обратно и четвертый. Изначально у меня был сложный метод, который просматривал массив байтов и преобразовывал все его переменные и строки, одну за другой, в то, что они должны были быть. Я узнал, что могу поместить все переменные в объект и преобразовать его в массив байтов с помощью

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;
    }

Проблема в том, что как только я отправлю этот массив байтов по сети в другое приложение, я могу 'Не просто используйте этот метод для его обратного преобразования, я получаю сообщение об ошибке «Невозможно найти сборку test1s, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = null». test1s - это просто название небольшой серверной программы, которую я сделал, чтобы поиграть с этим. Очевидно, что приложению требуется дополнительная информация для преобразования этого массива обратно в объект, так что могу ли я как-то это сделать, или я ошибаюсь в проблеме?

Здесь я хочу достичь ничего не стоящего но несколько переменных и строк, преобразовать его в массив байтов, отправить в другое приложение и преобразовать обратно в объект. Таким образом, мне не нужно играть с байтовым массивом для извлечения всех моих переменных и строк.

Спасибо

6
задан cost 14 November 2010 в 04:53
поделиться