“编组”一词的精确定义

时间:2009-06-03 15:19:34

标签: .net marshalling

在.NET世界中,编组是指仅通过某个边界或通过线路准备传输的对象/数据还是意味着准备并传输跨越边界或通过丝。

什么可以组织一个电话意味着什么。它是否仅仅意味着在上下文边界上“转移”调用的包装,还是包含和发送(即调用)呼叫?

对不起是一个坚持......

克拉里

5 个答案:

答案 0 :(得分:2)

在我看来,编组是指获取对象或数据,准备在非本地环境中使用,然后将其呈现给外国环境的行为。

我认为它是在一个不熟悉的环境中“被引导”的数据或对象方面。这可能涉及不同的编码,包装等,以及对象如何传输是编组过程的重要部分。

在数据或对象实际呈现给它的新上下文之前,我不认为它已被编组。此时它刚刚被转换,加密,包装或其他任何东西。

例如,JSON通常用于将对象或数据从一个进程传输到另一个进程。转换为JSON时,我只考虑从一个数据结构到另一个数据结构的转换。一旦它通过电线传输,那么它就被整理了。

所以,没有上下文改变,也没有编组。

那是我的两分钱。

答案 1 :(得分:1)

据我了解,这是数据的准备,而不是转移。使用该术语也包括转移的情况并不少见(我也犯了这样的罪行)。

答案 2 :(得分:1)

我认为它可以代表两种情况。

  • 仅限数据:考虑PInvoke方案。编组通常用于描述将.Net格式的数据转换为相应的C格式的行为。
  • 数据和通话:考虑跨越公寓的COM通话。在这种情况下,呼叫和呼叫所需的数据都被认为是Marshaled,因为实际呼叫必须跨越COM公寓边界。我意识到你在.Net的背景下问过这个问题,但我相信这是一个与.Net相关的可靠例子。例如,考虑使用ISynchronizedInvoke在线程之间进行。

答案 3 :(得分:1)

“Marshal”有几个含义,但除了它是一个标题之外,它意味着。 。

  元帅 - 动员:为...做好准备   行动或使用; “元帅资源”

所以它应该仅仅意味着“打包”,而不是“包装和发送”。

答案 4 :(得分:0)

编组完全是跨越边界

通常用于在2个appDomains之间传递对象。线上部分是可选的,但通过线路发送对象的过程首先是对象的序列化,发送通常是通过其他协议(tcp / ip)。