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