0

http://social.msdn.microsoft.com/Forums/en/roboticsdss/thread/3169a539-f536-4b9d-bae7-01212a857660から参照また、DSS サービスを使用およびデバッグした私自身の経験から、DSS はノード内通信にクローニングを使用し、ノード間通信にクローニング + シリアル化を使用します。このメカニズムを理解するための助けをお願いします。ノード内通信の場合、DSS はクローン作成のみを使用することを理解しています。これは、同じプロセス空間でオブジェクトを転送しているため (ネットワーク経由で通信する必要がないため)、望ましくない共有メモリの依存関係を望まないためです。しかし、ノード間通信では、なぜクローン + シリアライズを行う必要があるのでしょうか? シリアル化についての私の理解では、オブジェクトをシリアル化すると、シリアル化の最後に得られる出力は、シリアル化されるオブジェクトから完全に独立しており、新しいオブジェクトを構築するために分離して使用できます。また、連載中に、元のオブジェクトを更新するつもりはないと思います。単にそこから読み取るだけです。このようなシナリオでは、シリアライゼーションだけでは不十分でしょうか? シリアル化する前にクローンを作成する必要があるのはなぜですか?

ありがとう、

ベンカット

4

1 に答える 1

0

一般に、DSS は生成されたプロキシ タイプを使用してメッセージをシリアル化するため、メッセージが元のタイプを使用して構築されている場合、シリアル化する前にまずプロキシ タイプに変換されます (これは暗黙的に複製操作です)。一方、メッセージがプロキシ タイプを使用して構築されている場合、シリアル化の前に別のクローン作成手順はありません (パートナーにプロキシ タイプを使用する正当な理由)。

メッセージ タイプ (より厳密にはメッセージ ボディ タイプ) が IDssSerializable を実装する場合、動作はタイプの特定の実装に依存します (これは通常のプロキシ メカニズムをバイパスするため)。

于 2013-05-04T00:37:06.567 に答える