Есть ли способ сериализации и десериализации указателя в C #? - PullRequest
2 голосов
/ 02 августа 2011

Можно ли сериализовать или десериализовать любой указатель? Предположим, у меня есть класс следующим образом

  public unsafe class Class001
  {
        public byte* pointer;

        public Class001()
        {

            var byteArr = new byte[] {12, 54, 20};

            fixed(byte* ptr = byteArr)
            {
                pointer = ptr;
            }
         }
   }

Могу ли я сохранить шестнадцатеричное значение указателя в файле и восстановить его, используя Reflection, прочитав файл?

Я использовал слово сериализация / десериализация только для того, чтобы обозначить сохранение некоторых значений в файле и реконструировать его позже, это не должно быть стандартным процессом сериализации.

1 Ответ

7 голосов
/ 02 августа 2011

Абсолютно нет! Указатель является ссылкой на определенную область памяти. Вы действительно можете сериализовать шестнадцатеричное значение этого конкретного адреса памяти, но когда вы десериализуете его, этот адрес памяти, безусловно, будет содержать что-то совершенно другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...