讀取和擷取訊息簡介
更新:2007 年 11 月
當讀取和擷取訊息時,您必須注意幾項考量。
鎖定存取佇列
當您執行接收作業時,您可能想暫時防止其他使用者也從您正在使用的佇列移除訊息。若要這麼做,您可以將佇列的 DenySharedReceive 屬性設定為 true。設定 DenySharedReceive 可防止任何其他使用者從相同的佇列中移除訊息,直到您透過記憶體回收或是藉由呼叫 Close 方法,釋放對它的使用為止。
要擷取的屬性
訊息有許多個屬性,而篩選您要接收的屬性能讓您將焦點放在只與您相關的資訊。例如,如果您不需使用交易訊息,那麼您可能不想擷取與交易相關聯的屬性。在這種情況下,請將 MessagePropertyFilter 屬性 IsFirstInTransaction、IsLastInTransaction、TransactionId 和 TransactionStatusQueue 設定為 false。如此一來,當您的 MessageQueue 元件執行個體從佇列取得訊息時,它就不會擷取與這些屬性對應的任何屬性值。如需詳細資訊,請參閱 HOW TO:指定擷取的訊息屬性。
指定接收訊息的格式
當您從佇列讀取訊息時,會使用格式子物件來序列化和還原序列化訊息的內容以操作訊息。依預設,XmlMessageFormatter 物件會與您所建立的任何 MessageQueue 元件執行個體產生關聯,您可以設定它的幾個必要屬性,以用它來接收訊息。您也可以使用其他各種不同型別的格式子物件,如需格式子的詳細資訊,請參閱訊息序列化。
XmlMessageFormatter 會使用人們可讀取的 XML 字串,將物件和基本資料型保存為訊息,或從訊息還原保存。當您要使用這個格式子來擷取訊息時,可以設定 TargetTypeNames 或 TargetTypes 屬性來指出應如何處理產生的訊息。如果您使用其他的格式子物件,屬性也會跟著不同。