как сбросить в память объект и перенести его через? - PullRequest
0 голосов
/ 15 апреля 2010

Можно ли создать дамп / сохранить объект в памяти, чтобы дамп содержал как состояние, так и методы, а затем передавать его по проводам. Я в основном использую C #, но если это можно сделать с помощью какой-то другой технологии, это должно быть хорошо.

1 Ответ

1 голос
/ 15 апреля 2010

Под "дампом содержатся методы", это будет сильно зависеть от языка и времени выполнения.

В типичных статически типизированных языках ОО методы объекта определяются его типом, поэтому вам нужно всего лишь отправить идентификатор для типа, предполагая, что у получателя установлен тот же код. Получатель просто создает пустой объект этого типа и заполняет его полученными данными.

«Отправка методов» может означать все виды вещей: переговоры с получателем, чтобы узнать, есть ли у него определенные сборки (скомпилированный код), если нет, то отправка их (или указание загрузить их откуда-то), затем отправка данных создать экземпляр объекта с. Выполнение этого автоматически обычно представляет серьезную угрозу безопасности! Следовательно, это редко случается автоматически.

По сути, именно так веб-сервер отправляет вам видео. Если у вас нет необходимого плагина, он заставит вас загрузить его, а затем отправит вам данные для создания экземпляра плагина.

С очень динамичным языком, таким как JavaScript, разделение между кодом и данными становится более плавным. Следующее объявление примерно эквивалентно объекту с методом:

{
    counter: 5,
    increment: function() { this.counter++; }
}

Этот фрагмент текста можно отправить по сети, а затем получатель может использовать eval, чтобы превратить его в реальный объект:

c.increment();
c.increment();

alert(c.counter); // displays 7

Опять же, это, по сути, современные веб-страницы: сочетание объявленной структуры (в HTML) и небольших фрагментов исполняемого скрипта, которые отправляются через Интернет.

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