Come si specifica un'etichetta di messaggio quando si utilizza WCF e NetMsmqBinding?
Domanda
Vorrei impostare l'etichetta del messaggio MSMQ usando NetMsmqBinding. Capisco è facile quando si utilizza MsmqIntegrationBinding , ma vorrei continuare a utilizzare NetMsmqBinding ( persino chiamare metodi privati ??, se possibile)
Soluzione
Pensavo fosse una domanda interessante. Sfortunatamente, da tutto quello che ho visto, sembra che non puoi accedere alla proprietà Label su un messaggio MSMQ in uscita usando NetMsmqBinding.
Ecco alcuni dei link che ho trovato:
-
http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/3389679b-a130-4e83-bb4c-1b522c216227/
-
http://blogs.msdn.com/skaufman/archive/2007/12/17/msmq-label-property-and-wcf.aspx
Non sono riuscito a trovare nulla che spiegasse esattamente il perché, ma il ragionamento ha senso: NetMsmqBinding non espone nulla di specifico per System.Messaging, in modo che il binding stesso possa essere facilmente sostituito con un altro binding senza alcuna modifica del codice. Come hai detto, MsmqIntegrationBinding è strettamente associato ai concetti System.Messaging, in modo da avere accesso a tutto il materiale System.Messaging a spese dell'intercambiabilità con altri binding. Se l'impostazione dell'etichetta è importante, il percorso più semplice sarà probabilmente usare solo msmqIntegrationBinding.
Altri suggerimenti
George: nessuna risposta, ma sono curioso di sapere come pensi di utilizzare l'etichetta MSMQ insieme a NetMsmqBinding.
Il motivo per cui lo chiedo è che NetMsmqBinding è stato davvero creato per supportare lo scenario in cui entrambi gli endpoint di invio e ricezione sono entrambi applicazioni WCF, quindi a quel punto potresti anche incollare tutti i dati fuori banda di cui hai bisogno le intestazioni dei messaggi ...
Usa OperationContext.Current.IncomingMessageProperties.Values ??