2009-06-03 2 views
12

.NETの世界では、マーシャリングはオブジェクトの準備だけを意味します。境界線を越えて、またはワイヤを介して転送することを意味しますか、または、と転送またはワイヤ上で行うことができる。「マーシャリング」という用語の正確な定義

コールの平均をマーシャリングすることは何ですか。コンテクスト境界上での「転送」のためのコールのパッケージングだけを意味するのか、それともコールのパッケージ化と送信(すなわち呼び出し)であるのか?こだわることについて申し訳ありません

...

クラリー私はそれを理解していることがデータの準備ではなく、転送されたよう

+0

'dotnot'をタグとして使用しないでください –

答えて

1

。それでも、移転を含めるためにこの用語を使用するのは珍しいことではない(私もこれを行うことを犯している)。

2

私の考えでは、マーシャルとは、オブジェクトやデータを取り出し、それを非ネイティブコンテキストで使用するために準備し、それをその外部コンテキストに提示する行為を指します。

私はそれが馴染みのない環境で「案内された」データまたはオブジェクトの面でそれを考える。これには、異なるエンコーディング、ラッパーなどが含まれ、オブジェクトがどのように転送されるかは、マーシャリングプロセスの重要な部分です。

データまたはオブジェクトが新しいコンテキストに実際に提示されるまで、私はマーシャリングされていないと考えます。その時点で、変換、暗号化、ラップなどが行われました。

例として、JSONはオブジェクトまたはデータをあるプロセスから別のプロセスに転送するためによく使用されます。 JSONに変換する際には、あるデータ構造から別のデータ構造への変換を考慮する必要があります。ワイヤを介して転送されると、マーシャリングされます。

したがって、コンテキスト変更は行わず、マーシャリングは行いません。

これは私の2セントです。

1

私はそれが両方のシナリオを表すことができると思います。

  • データのみ:PInvokeシナリオを検討してください。マーシャリングは、通常、.Net形式のデータを対応するC形式に変換する行為を記述するために使用されます。
  • データと呼び出し:アパートを横切るCOMコールを検討してください。この場合、通話と通話に必要なデータは、実際の通話がCOMアパートメントの境界を越えなければならないため、マーシャリングされたものとみなされます。 .Netのコンテキストでこれを尋ねたことは分かりますが、これは.Netに関連する確かな例だと思います。たとえば、ISynchronizedInvokeを使用してスレッド間を移動することを考えてみましょう。
1

「マーシャル」にはいくつかの意味がありますが、タイトルとは別に意味します。 。 。

マーシャル - 動員: アクションまたは使用の準備ができました。 "マーシャルリソース"

したがって、パッケージ化して送信するのではなく、パッケージ化することを意味します。

0

マーシャリング通常2なappDomains間でオブジェクトを渡すために使用される境界

accross純粋です。オーバーワイヤー部分はオプションですが、オブジェクトをワイヤー経由で送信するプロセスは、まずオブジェクトのシリアル化を行い、送信は通常他のプロトコル(tcp/ip)によって行われます。