AMQP specific message headers can be set on or retrieved from the ServiceModel.Channels.Message using the AmqpProperties type.
For example, on output:
AmqpProperties props = new AmqpProperties();
props.Durable = true;
props.PropertyMap.Add("my_custom_header", new AmqpString("a custom value"));
Message msg = Message.CreateMessage(args);
msg.Properties.Add("AmqpProperties", amqpProperties);
outputChannel.Send(msg);
On input the headers can be accessed from the Message or extracted from the operation context
public void SayHello(string greeting)
{
AmqpProperties props = (AmqpProperties) OperationContext.
Current.IncomingMessageProperties["AmqpProperties"];
AmqpString extra = (AmqpString) props.PropertyMap["my_custom_header"];
Console.WriteLine("Service received: {0} and {1}", greeting, extra);
}