Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Разбираем массив байтов типа Object  [new]
mozgen
Member

Откуда:
Сообщений: 65
Доброго времени суток!
Собственно сабж в сабже =)

Имею некоторый массив байтов типа object. В этом массиве "зашифрованы" некоторое кол-во нужных мне данных (кол-во переменных и их порядок известны) разных типов (string, float, int и тд). Задача - разобрать этот массив и вычленить необходимую информацию.

Что делаль:
1) Пробую просто:
 Console.WriteLine(Encoding.UTF8.GetString(obj, 0, 20)); 

Логично не работает, просит byte[].

2) Пробую быстро:
BinaryFormater bf = new BinaryFormater();
byte[] bytesArr;
Using (var ms = new MemoryStream())
{
bf.Serialize(ms, obj);
bytesArr = ms.ToArray;
Console.WriteLine(Encoding.UTF8.GetString(bytesArr, 0, 20));
}

Что-то получаю, но получаю ахинею. В bytesArr лежит вообще что-то "левое", а не исходный массив. Еще и сам массив из исходных 578 элементов вырос до 606.

3) Пробую BinaryReader:
BinaryFormater bf = new BinaryFormater();
Using (var ms = new MemoryStream())
{
bf.Serialize(ms, obj);
Using (BinaryReader reader = new BinaryReader(ms))
{
Console.WriteLine(reader.ReadString());
}
}

Получаю exeption: Unable to read beyond the end of the stream.

4) пробую с BinaryReader.PeekChar:
BinaryFormater bf = new BinaryFormater();
Using (var ms = new MemoryStream())
{
bf.Serialize(ms, obj);
Using (BinaryReader reader = new BinaryReader(ms))
{
while (reader.PeekChar() > -1)
{
Console.WriteLine(reader.ReadString());
}
}
}

В тело цикла не попадаю, видать reader.PeekChar() не находит следующий символ, а в самом reader _buffer лежит та же ерунда, что и в попытке №2, но всего 256 элементов.

Короче, запутался и замучился. Ребят, как этот массив разобрать?

Зы: По форуму смотрел, темы есть, не помогло. Гугль читал, инфы много, не получилось. MS FM курил, но видать слабО...
21 фев 19, 10:53    [21816075]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 4605
Мысль про банальный тайпкастинг к byte[] в голову не приходила?
21 фев 19, 11:25    [21816102]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
mozgen,

var myObj = new MyObj()
myObj.Read(byte[]источник);
...
public virtual ImyObjectDemo Read( byte [data]) {
       using (Stream stream = new....
                return Read(stream) ;
Далее BinaryReader(stream
21 фев 19, 11:25    [21816105]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
mozgen
Member

Откуда:
Сообщений: 65
Сон Веры Павловны,

Приходила. Варианты реализации подскажешь?)
21 фев 19, 14:34    [21816407]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
mozgen
Member

Откуда:
Сообщений: 65
Petro123,

Эмм... не понял, а зачем? можно как-нибудь подробнее..
21 фев 19, 14:35    [21816408]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145536
mozgen
Сон Веры Павловны,

Приходила. Варианты реализации подскажешь?)

object o = new byte[] { 1, 2, 3, 4, 5 };
byte[] b = (byte[])o;
21 фев 19, 14:52    [21816437]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
mozgen
Petro123,

Эмм... не понял, а зачем? можно как-нибудь подробнее..
что зачем?
По ООП я твои зашифрованные данные записал в класс myObj.
Пропиши там твои поля и пробуй.
21 фев 19, 15:06    [21816461]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
Cat2,

)))
21 фев 19, 15:06    [21816463]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
mozgen
зашифрованы" некоторое кол-во нужных мне данных (кол-во переменных и их порядок известны) разных типов (string, float, int и тд)
покажи класс с этими переменными
21 фев 19, 15:08    [21816469]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145536
Petro123
mozgen
зашифрованы" некоторое кол-во нужных мне данных (кол-во переменных и их порядок известны) разных типов (string, float, int и тд)
покажи класс с этими переменными

Ты думаешь там есть класс?
21 фев 19, 17:55    [21816678]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
Cat2,
)) я просто напомнил, что "руки мыть хорошо перед едой".
Ну и загрузил ТС работой.
Пусть работает.
21 фев 19, 18:56    [21816772]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
mozgen
Member

Откуда:
Сообщений: 65
Petro123
покажи класс с этими переменными

Cat2
Ты думаешь там есть класс?

Совершенно верно, нет у меня никакого класса. По сути, я и что хранится в этом массиве знаю условно приблизительно.

Petro123
Ну и загрузил ТС работой.
Пусть работает.

Вот уж спасибо! =)

В любом случае, я просил подсказать в какую сторону копать. Будем пробовать. =)
22 фев 19, 06:07    [21816966]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Изопропил
Member

Откуда:
Сообщений: 30998
mozgen,

Уверен в том, что тебе нужна десериализвция?
22 фев 19, 08:08    [21816984]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
mozgen
По сути, я и что хранится в этом массиве знаю условно приблизительно.
не выйдет. Надо точно знать что там. Иначе заголовок нужен.
22 фев 19, 08:14    [21816988]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 1319
mozgen
По сути, я и что хранится в этом массиве знаю условно приблизительно.

А что это такое, откуда берётся? Чем данные "зашифрованы"? Может Protocol Buffers какой?
22 фев 19, 08:43    [21816996]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
mozgen
Member

Откуда:
Сообщений: 65
Изопропил,

нееет, не уверен =)

Petro123
не выйдет. Надо точно знать что там. Иначе заголовок нужен.

Понятно. Скажем так, у меня есть некоторый "конфигурационный" файл, в котором описана структура. Например:
<Types>
 <Type name="typeA">
  <String name="str" Length="20">
  <Float name="floatVal">
  <Int name="intVal">
 <Type/>
  <Type name="typeB">
  <String name="str" Length="20">
  <Float Length="4" name="floatVal">
  <Int Length="2" name="intVal">
 <Type/>
<Types/>

По идее, в получаемом мной объекте, элементы массива должны располагаться именно в том порядке, в каком указаны в конфиге.
Ну допустим, разобрать этот конфиг и создать необходимый класс со всеми подкласами я могу. В результате получим что-то типа такого:
Class types
{
 Class typeA
 {
   public string str;
   public float floatVal;
   public int intVal;
   public typeAFill(string str1, float floatVal1, int intVal1)
   {
     str = str1;
     floatVal = floatVal1;
     intVal = intVal1;
   }
 }
 Class typeB
 {
   public string str;
   public float floatVal;
   public int intVal;
   public typeAFill(string str1, float floatVal1, int intVal1)
   {
     str = str1;
     floatVal = floatVal1;
     intVal = intVal1;
   }
 }
}

Ок, а дальше что?
BinaryFormater formatter = new BinaryFormater();
using (Stream stream = new Stream(bytes[])
{
 types newType = (types)formatter.Deserialize(stream);
}


Или как?
22 фев 19, 08:52    [21816999]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
mozgen
Member

Откуда:
Сообщений: 65
Дмитрий Мух,
Читаю с PLC. Зашифрованы вообще не правильное слово, разве что "удобное". Я так понимаю, что это эдакая "унификация". Вместо того, чтоб постоянно слать/читать овермного переменных разных типов, их проще все собрать в unsignedByte массив и скопом отправить клиенту. А клиенту зная структуру можно их разобрать в удобоваримый вид. вот задачу клиента и пытаюсь реализовать.
22 фев 19, 08:57    [21817002]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
mozgen,
Вы изобрели сериализацию?
22 фев 19, 09:06    [21817005]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
mozgen
есть некоторый "конфигурационный" файл, в котором описана структура.
его руками пишут?
22 фев 19, 09:07    [21817006]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
mozgen
Я так понимаю, что это эдакая "унификация". Вместо того, чтоб постоянно слать/читать овермного переменных разных типов, их проще все собрать в unsignedByte массив и скопом отправить клиенту. А клиенту зная структуру можно их разобрать в удобоваримый вид. вот задачу клиента и пытаюсь реализовать.
бред какой то.
22 фев 19, 09:08    [21817009]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
mozgen
Member

Откуда:
Сообщений: 65
Petro123,
Petro123
Вы изобрели сериализацию?

Не понял.
Petro123
его руками пишут?

Угу. Пишут. Один раз. когда-то давно.
Petro123
бред какой то.

Что есть, то и едим. =)
22 фев 19, 09:15    [21817016]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Изопропил
Member

Откуда:
Сообщений: 30998
mozgen,

Конфигурации файл это хорошо,
Данные как записывают?
22 фев 19, 09:25    [21817025]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
mozgen
Member

Откуда:
Сообщений: 65
Изопропил,
Куда записывают? в массив? - понятия не имею. По сути, у меня в ту логику и доступа-то нет...
22 фев 19, 09:31    [21817030]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
mozgen
Petro123
Вы изобрели сериализацию?

Не понял.
прочтите в википедии.
Это передача классов по проводам не в виде электронов, а в виде байт.
У вас же то же самое?
22 фев 19, 09:35    [21817032]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
mozgen,
Если конфиг не меняется (вам решать), то делаете из него не ваши классы, а руками читаете xml и читаете стрим с байтами.
Всё.
22 фев 19, 09:39    [21817034]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
mozgen
Member

Откуда:
Сообщений: 65
Petro123,
=)
Спасибо за подсказку. Но что такое сериализация я знаю, я не понял почему
Petro123
Вы изобрели сериализацию?
22 фев 19, 09:40    [21817035]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
mozgen
Member

Откуда:
Сообщений: 65
Petro123,
При всем уважении, вопрос и был в
Petro123
и читаете стрим с байтами.


Как это сделать-то?
22 фев 19, 09:47    [21817039]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Изопропил
Member

Откуда:
Сообщений: 30998
mozgen
Изопропил,
Куда записывают? в массив? - понятия не имею. По сути, у меня в ту логику и доступа-то нет...

Значит прочитать нужно неизвестно что?
22 фев 19, 09:47    [21817040]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
mozgen
Petro123,
При всем уважении, вопрос и был в
Petro123
и читаете стрим с байтами.


Как это сделать-то?
я код выше дал
22 фев 19, 09:52    [21817043]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
mozgen
Member

Откуда:
Сообщений: 65
Petro123,
Хорошо, давай конкретизирую: каким образом мне из потока последовательно вычленять данные в различных форматах?
22 фев 19, 10:08    [21817055]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
mozgen
Petro123,
Хорошо, давай конкретизирую: каким образом мне из потока последовательно вычленять данные в различных форматах?

Petro123
Далее BinaryReader(stream

Непонятно?
Начните писать. Хотя бы 5 минут.
22 фев 19, 10:41    [21817083]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
ВМоисеев
Member

Откуда: Редкино
Сообщений: 1792
>mozgen, сегодня, 10:08 [21817055]
>Хорошо, давай конкретизирую: …
<Попробуй так
  public static class бом {
    public static MemoryStream xms      = null;
    public static byte[] xbb            = null;
    . . . 
    //-- Бинарная сериализация объекта 
    //-- вход:	object
    //-- выход:	xms <-- байтовое представление объекта
    //=========================================================
   public static bool binSerObject(object obj) {
     try {
       xms=new MemoryStream();
       BinaryFormatter binForm=new BinaryFormatter();
       binForm.Serialize(xms,obj,null);
       xms.Position=0;
       return true;
     }
     catch	{return false;}
   }
   //-- Бинарная десериализация объекта из памяти
   //-- вход: xms <-- байтовое представление объекта
   //-- выход: object
   //=========================================================
   public static object binDeSerObject() {
     try {BinaryFormatter binForm=new BinaryFormatter(); return binForm.Deserialize(xms);}
     catch {return null;	}
   }

   //-- Формируем ??-и байтовое представление string в xms
   //========================================================
   public static void StringToXMS(string st)	{
      st=st.Trim();
      if(st.Length==0) st=" ";
      byte[] bt=UnicodeEncoding.UTF8.GetBytes(st);   //-- byte[] <-- st
      ShortToXMS((short)bt.Length);
      xms.Write(bt,0,bt.Length);
  }
   //-- Восстановление string из xms
   //==========================================================
   public static string xmsToString() {
      int n=xmsToShort();
      byte[]bt=new byte[n];
      xms.Read(bt,0,n);
      return UnicodeEncoding.UTF8.GetString(bt); //-- string <--  byte[]
  }
  . . .
  //-- Формируем 4-х байтовое представление int в xms
  //=================================================
  public static void IntToXMS(int ii){byte[] bt=BitConverter.GetBytes(ii); xms.Write(bt,0,bt.Length);}
  //-- Восстановление int из xms
  //==========================================================
  public static int xmsToInt() {byte[]bt=new Byte[4];xms.Read(bt,0,4); return BitConverter.ToInt32(bt,0);}
  //-- Формируем 8-и байтовое представление long в xms
  //=================================================
  public static void LongToXMS(long ii){byte[] bt=BitConverter.GetBytes(ii); xms.Write(bt,0,bt.Length);}
  //-- Восстановление long из xms
  //==========================================================
  public static long xmsToLong(){byte[]bt=new Byte[8];xms.Read(bt,0,8); return BitConverter.ToInt64(bt,0);}
  . . . 
22 фев 19, 10:45    [21817085]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
ВМоисеев,
По моему варианту там кода 10 строк и без сериализации.
22 фев 19, 10:52    [21817091]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
ВМоисеев
Member

Откуда: Редкино
Сообщений: 1792
>Petro123, сегодня, 10:52 [21817091]
>По моему варианту…
<Так это же здорово, если есть варианты.
Только у нас с Вами несколько разные предпосылки - мне мало сформировать xms, надо и упаковать и шифрануть
22 фев 19, 11:28    [21817123]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
ВМоисеев
Member

Откуда: Редкино
Сообщений: 1792
>Petro123, сегодня, 10:52 [21817091]
>По моему варианту…
<Так это же здорово, если есть варианты.
Только у нас с Вами несколько разные предпосылки - мне мало сформировать xms, надо и упаковать и шифрануть
22 фев 19, 11:44    [21817144]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
ВМоисеев
Так это же здорово, если есть варианты.
+1
22 фев 19, 11:52    [21817160]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72694
Я так и не въехал, в каком виде приходит массив, но если это работает:
byte[] bytesArr = obj;

то все просто.

<Type name="typeA">
  <String name="str" Length="20">
  <Float name="floatVal">
  <Int name="intVal">
 <Type/>

20 байт строка + 4 байта float + 8 байт int = bytesArr.Length должно быть == 32. Или делиться на 32 без остатка - если таких записей в массиве много. Если это правило не исполняется - последняя запись битая или вообще прислали лажу. Возможно на уровне документации, а не байтов.

            var tA = new typeA
            {
                str = BitConverter.ToString(bytesArr, 0, 20), //c начала массива 20 байт
                floatVal = BitConverter.ToSingle(bytesArr, 20), //4 с 20го
                intVal = BitConverter.ToInt32(bytesArr, 24), //8 с 24го
            };
22 фев 19, 21:45    [21817675]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Изопропил
Member

Откуда:
Сообщений: 30998
Antonariy
BitConverter.ToString

уверен, что именно это требуется?
22 фев 19, 21:56    [21817678]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72694
Изопропил
Antonariy
BitConverter.ToString

уверен, что именно это требуется?
Нет. В VB6 для этого использовал бы CopyMemory, ей пофиг, стринг-не стринг. По дотнетом этим не занимался, но принцип ведь тот же.
22 фев 19, 22:39    [21817690]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
Antonariy, проще:
string name = reader.ReadString();
string capital = reader.ReadString();
int area = reader.ReadInt32();
double population = reader.ReadDouble();
23 фев 19, 10:00    [21817749]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72694
еще проще:

Private Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Type Type1
    s As String * 20
    f As Double
    i As Long
End Type

Sub test()
    Dim t1 As Type1
    CopyMemory VarPtr(t1), bytesArr, Len(t1)
End Sub

наверняка в c# тоже так можно, только без CopyMemory.
25 фев 19, 10:25    [21818502]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
Antonariy,
Операции с памятью, указателями в одно время на историческом пути посчитали опасными, и не приветствуются.
25 фев 19, 10:42    [21818509]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
ВМоисеев
Member

Откуда: Редкино
Сообщений: 1792
>Antonariy, сегодня, 10:25 [21818502]
>наверняка в c# тоже так можно…
<Можно
if(бом.binSerObject(xObj)) { 
. . .
Только для чего это надо? Что будешь делать с сериализацией? Иногда удобнее работать с полями.
25 фев 19, 11:01    [21818522]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72694
ВМоисеев
>Antonariy, сегодня, 10:25 [21818502]
>наверняка в c# тоже так можно…
<Можно
if(бом.binSerObject(xObj)) { 
. . .
Только для чего это надо? Что будешь делать с сериализацией? Иногда удобнее работать с полями.
Вообще-то тут обратная операция - десериализация в тип.
25 фев 19, 11:09    [21818527]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72694
Petro123
Antonariy,
Операции с памятью, указателями в одно время на историческом пути посчитали опасными, и не приветствуются.
прям боюсь-боюсь
25 фев 19, 11:10    [21818529]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
Antonariy
Petro123
Antonariy,
Операции с памятью, указателями в одно время на историческом пути посчитали опасными, и не приветствуются.
прям боюсь-боюсь
против ветра, оно знаешь,.....))))
25 фев 19, 11:35    [21818548]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
ВМоисеев
Member

Откуда: Редкино
Сообщений: 1792
>Antonariy, сегодня, 11:09 [21818527]
>Вообще-то…
<Можно так:
Object xObj=бом.binDeSerObject();

Но с какой целью?
25 фев 19, 11:48    [21818561]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72694
Petro123
Antonariy
пропущено...
прям боюсь-боюсь
против ветра, оно знаешь,.....))))
знаю, галсами.
25 фев 19, 12:19    [21818605]     Ответить | Цитировать Сообщить модератору
 Re: Разбираем массив байтов типа Object  [new]
pation
Member

Откуда: Москва
Сообщений: 4441
mozgen,

TestClass GetTestClass(byte[] barray)
        {
            try
            {
                var t = barray;
                using (var ms = new MemoryStream(t))
                {
                    var bf = new BinaryFormatter();
                    return (TestClass)bf.Deserialize(ms);
                }
            }
            catch
            {
                return new TestClass();
            }
        }

        byte[] GetArray(TestClass tclass)
        {
            using (var ms = new MemoryStream())
            {
                var bf = new BinaryFormatter();
                bf.Serialize(ms, tclass);
                return ms.ToArray();
            }
        }
25 фев 19, 23:47    [21819251]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / WinForms, .Net Framework Ответить