HOW TO:指定已擷取訊息的格式子
更新:2007 年 11 月
您必須指定您要用來從佇列擷取訊息的格式子物件。格式子將指示從佇列移除訊息時如何將其還原序列化。依照您使用哪種格式子而定,您可能需要設定其他屬性來指定格式子應如何運作。
依預設,大部分的作業會使用 XmlMessageFormatter。如需您可以使用之格式子的詳細資訊,請參閱訊息序列化。如需 XmlMessageFormatter 物件特有屬性的相關資訊,請參閱讀取和擷取訊息簡介。
您可以在程式碼中或在 [屬性] 視窗中指定格式子。除此之外,您可以在佇列上或訊息上設定格式子。當您要直接存取佇列的訊息時,您可在佇列上設定格式子,如下列程式碼所示:
Console.WriteLine(CStr(MessageQueue1.Receive().Body))
Console.WriteLine(MessageQueue1.Receive().Body.ToString());
當您要透過訊息物件擷取佇列的內容,您可以在訊息上設定格式子:
Message1 = MessageQueue1.Receive()
message1 = messageQueue1.Receive();
若要在屬性視窗中指定格式子
建立並設定您的 MessageQueue 元件執行個體。如需詳細資訊,請參閱 HOW TO:建立 MessageQueue 元件執行個體。
在設計工具中,按一下 MessageQueue 執行個體,然後存取 [屬性] 視窗。
將 Formatter 屬性設定為適當值。
如果您選擇 XmlMessageFormatter 物件或 BinaryMessageFormatter 物件,請展開屬性並設定必要的子屬性,以設定您的格式子。
若要利用程式指定格式子
建立並設定您的 MessageQueue 元件執行個體。如需詳細資訊,請參閱 HOW TO:建立 MessageQueue 元件執行個體。
在 [程式碼編輯器] 中,建立型別為 XmlMessageFormatter、ActiveXMessageFormatter 或 BinaryMessageFormatter 的格式子物件。
為您的格式子設定任何需要的屬性。
擷取您的訊息。
例如,下列程式碼將說明如何建立並設定元件,以便能夠使用 XmlMessageFormatter 物件,來擷取名為 MyQueue 之公用佇列中的訊息。
Dim mq As New System.Messaging.MessageQueue(".\MyQueue") Dim formatter As System.Messaging.XmlMessageFormatter = _ CType(mq.Formatter, System.Messaging.XmlMessageFormatter) formatter.TargetTypeNames = New String() {"System.String"} Dim m As System.Messaging.Message = mq.Receive(New TimeSpan(0, 0, 3))
System.Messaging.MessageQueue mq = new System.Messaging.MessageQueue(".\\MyQueue"); string[] types = { "System.String" }; ((System.Messaging.XmlMessageFormatter)mq.Formatter).TargetTypeNames = types; System.Messaging.Message m = mq.Receive(new TimeSpan(0, 0, 3));