Когда я пытаюсь преобразовать объект в массив байтов, я получаю wierd массив. это код:Преобразование объектов в байты
using (MemoryStream ms = new MemoryStream())
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms, obj);
Console.WriteLine(ByteArrayToString(ms.ToArray()));
}
//int obj = 50;
//string ByteArrayToString(byte[] byteArr) the functionality of this method is pretty obvious
результат заключается в следующем:
«00 01 00 00 00 FF FF FF FF 01 00 00 00 00 00 00 00 04 01 00 00 00 0C 53 79 73 74 65 6D 2E 49 6E 74 33 32 01 00 00 00 07 6D 5F 76 61 6C 75 65 00 08 32 00 00 00 0B «
Может кто-нибудь объяснить мне ПОЧЕМУ? :) оптимальный результат должен быть только« 32 00 00 00 ".
Это именно то, чего я ожидал бы. Вы конвертируете объект 'MemortyStream' вместо целочисленной переменной' obj' в массив 'byte'. Существует 'integer' to Byte []' Я предлагаю вам использовать его. Я должен проголосовать за этот вопрос, потому что кажется, что вы не потратили времени, пытаясь понять это. –
@ Ramhound: ваше объяснение не имеет смысла, поскольку OP явно * не * сериализует «MemoryStream».См. ['BinaryFormatter.Serialize'] (http://msdn.microsoft.com/en-us/library/c5sbs8z9.aspx). – user7116