次の方法で共有


メッセージ割り当て図形におけるメッセージ参照

最初に .NET ベースのオブジェクトをメッセージまたはメッセージの一部に割り当てると、そのメッセージはオブジェクトへの参照を保持し、維持します。

効率とスケーラビリティのために、オーケストレーション エンジンはオブジェクトの "ディープ コピー" を行いません。つまり、オブジェクトの内容全体をメッセージにコピーすることはありません。

その後、オブジェクトを別のメッセージまたはメッセージ部分に割り当てると、元のオブジェクトに対する変更が、2番目のメッセージまたはメッセージ部分にも影響します。 結果は予測できないため、この方法は避ける必要があります。

2 番目のメッセージにオブジェクトの個別のコピーが必要な場合は、最初のメッセージまたはメッセージ部分を 2 番目のメッセージまたはメッセージ部分に割り当てる必要があります。

次の例を確認してください。

間違った方法:

myMsg1 = myObj; // assign the first message  
myMsg2 = myObj; // assign the second message (wrong!)  
myMsg2.myInt = 100; // modify the second  
myMsg1.myInt = 5;  

この場合、myMsg2.myInt が上書きされ、値が 5 になりました。

正しい方法:

myMsg1 = myObj; // assign the first message  
myMsg2 = myMsg1; // assign the second message (right!)  
myMsg2.myInt = 100; // modify the second  
myMsg1.myInt = 5;  

この場合も、myMsg2.myInt の値は 100 のままです。

こちらもご覧ください

メッセージの構築