Message的表现模式

当Message被构造时,它存在两种表示。一个是在MessageBox中的表示,另外一个是在内存中的表示。如果把消息赋值给.NET Object或者传递到外部类,那么消息的内存表现模式会发生改变,此时MessageBox是无法感知这种变化的。

在不同消息构造方法下,每种表示会有不同的表现模式。Message的四种表现模式如下:
XmlDocument模式:通过XmlDocument类来构造消息。
Object模式:通过Class来构造消息。
Stream模式:XLANGMessage类型构造消息。
UnderlyingPart模式:通过已提交的消息赋值构造消息,指向MessageBox的Stream指针。

//假设m1消息已经提交到MessageBox
Construct m2 {
               m2 = m1; // m2消息是UnderlyingPart表现模式
               m2(myContextProperty) = “123”; // m2的消息表现模式没有变化
               A.test(m2.part); // Orchestration引擎不会使UnderlyingPart MessageBox表现模式失效
             }

Void A.test(ref XmlDocument xd) {…}
construct m2 {
               m2 = m1;
               m2(myContextProperty) = “123”; //m2消息是UnderlyingPart表现模式
               A.test(ref m2.part); //Orchestration通过方法参数类型知道m2的表现模式从UnderlyingPart转为XmlDocument模式,需要使MessageBox中的消息模式失效
             }

Reference:http://msdn.microsoft.com/en-us/library/aa995564.aspx

你可能感兴趣的:(message)