Condividi tramite


Riferimenti ai messaggi nella forma di assegnazione dei messaggi

Quando si assegna per la prima volta un oggetto basato su .NET a un messaggio o a una parte del messaggio, il messaggio mantiene un riferimento all'oggetto.

Per garantire efficienza e scalabilità, il motore di orchestrazione non esegue una "copia completa" dell'oggetto, ovvero non copia l'intero contenuto dell'oggetto nel messaggio.

Se successivamente si assegna l'oggetto a un altro messaggio o parte del messaggio, eventuali modifiche apportate all'originale comportano modifiche al secondo messaggio o alla parte del messaggio. È consigliabile evitare questa procedura, perché i risultati sono imprevedibili.

Se è necessario che il secondo messaggio abbia una copia distinta dell'oggetto, è necessario assegnare la prima parte del messaggio o del messaggio al secondo messaggio o parte del messaggio.

Si consideri l'esempio seguente:

Modo errato:

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

In questo caso, myMsg2.myInt è stato sovrascritto e ora ha il valore 5.

Modo corretto:

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

In questo caso, myMsg2.myInt ha ancora il valore 100, come previsto.

Vedere anche

Costruzione di messaggi