共用方式為


訊息指派圖形中的訊息參考

當您第一次將 .NET 型的物件指派給訊息或訊息的一部分時,該訊息會保存並維護該物件的參考。

為了提高效率和延展性,協調流程引擎不會執行物件的「深層複製」:也就是說,它不會將對象的整個內容複製到訊息。

如果您隨後將 物件指派給另一個訊息或訊息元件,則對原始的任何修改會導致第二個訊息或訊息部分的修改。 您應該避免這種做法,因為結果無法預測。

如果您需要第二個訊息具有物件的不同複本,您應該將第一個訊息或訊息部分指派給第二個訊息或訊息部分。

請考慮下列範例:

走錯路

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,如預期般。

另請參閱

建構訊息