转储/保存内存对象是否可行,以便转储包含状态和方法,然后通过线路传输。我主要使用C#,但如果可以在其他技术中完成,那应该是好的。
答案 0 :(得分:1)
通过“转储包含方法”,这将取决于语言和运行时很多。
在典型的静态类型OO语言中,对象的方法由其类型决定,因此您只需要发送该类型的标识符,假设收件人安装了相同的代码。收件人只是实例化该类型的空白对象,并用接收到的数据填充它。
“发送方法”可能意味着各种各样的事情:与收件人协商以查看他们是否有某些程序集(已编译的代码),如果没有则发送它们(或告诉它从某处下载它们)然后发送数据使用实例化对象。自动执行此操作通常会带来巨大的安全风险!因此很少自动发生。
这实际上是网络服务器向您发送视频的方式。如果您没有所需的插件,它会让您下载它,然后向您发送数据以实例化插件的实例。
使用像JavaScript这样非常动态的语言,代码和数据之间的划分更加无缝。以下声明大致相当于具有方法的对象:
{
counter: 5,
increment: function() { this.counter++; }
}
这段文字可以通过网络发送,然后收件人可以使用eval
将其转换为实际对象:
c.increment();
c.increment();
alert(c.counter); // displays 7
同样,这基本上就是现代网页的内容:声明的结构(在HTML中)和小块可执行脚本的组合,它们通过互联网发送。