Mensagens que são postadas dentro de uma fila no Microsoft Message Queue podem ser recuperadas retirando-as da fila ou apenas lendo as mesmas, sem remove-las. Essas mensagens são recuperadas e retornam para cada uma delas um objeto do tipo Message.
Esse tipo contém uma porção de propriedades interessantes que podem ser utilizadas na aplicação. Só que, por padrão, várias dessas propriedades não são retornadas e, quando voce tenta acessá-las, uma Exception do tipo InvalidOperationException é atirada. Um exemplo de uma propriedade que não é recupera é a propriedade SentTime, que é a hora de envio da mensagem a fila.
Para recuperarmos uma determinada propriedade, podemos utilizar a propriedade MessageReadPropertyFilter que é responsável por gerenciar qual propriedade será retornada. Há duas formas de fazer isso, ou seja, habilitar exclusivamente apenas uma propriedade ou todas de uma única fez, e as formas são mostradas respectivamente à seguir:
string path = @”.Private$TempQueue”;
MessageQueue queue = new MessageQueue(path);
[ Apenas uma propriedade específica ]
queue.MessageReadPropertyFilter.SentTime = true;
[ Todas as propriedades ]
queue.MessageReadPropertyFilter.SetAll();