Итак, у меня есть сервер и клиент, которые передают различные данные туда и обратно. Первоначально у меня был сложный метод, который проходил через массив байтов и преобразовывал все его переменные и строки одну за другой в то, чем они должны были быть. Я узнал, что могу поместить все переменные в объект и преобразовать его в массив байтов, используя
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 — это просто название маленькой серверной программы, которую я сделал, чтобы играть с этим. Очевидно, что приложению нужна дополнительная информация, чтобы преобразовать этот массив обратно в объект, так что я могу это сделать, или я неправильно решаю проблему?
Здесь я хочу получить объект, состоящий только из нескольких переменных и строк, преобразовать его в массив байтов, отправить в другое приложение и преобразовать обратно в объект. Таким образом, мне не нужно играть с массивом байтов, чтобы извлечь все мои переменные и строки.
Спасибо