OperationContext.IncomingMessageHeaders OperationContext.IncomingMessageHeaders OperationContext.IncomingMessageHeaders OperationContext.IncomingMessageHeaders Property

Definition

Gets the incoming message headers for the OperationContext.

public:
 property System::ServiceModel::Channels::MessageHeaders ^ IncomingMessageHeaders { System::ServiceModel::Channels::MessageHeaders ^ get(); };
public System.ServiceModel.Channels.MessageHeaders IncomingMessageHeaders { get; }
member this.IncomingMessageHeaders : System.ServiceModel.Channels.MessageHeaders
Public ReadOnly Property IncomingMessageHeaders As MessageHeaders

Property Value

A MessageHeaders object that contains the incoming message headers.

Examples

The following code example shows how to read the incoming message headers in a service operation.

class SampleService : ISampleService
{
#region ISampleService Members

  public void Push(string msg)
  {
    Console.WriteLine("Proxy: " + msg);
    this.WriteHeaders(OperationContext.Current.IncomingMessageHeaders);
    MessageHeader outBoundHeader
      = MessageHeader.CreateHeader(
        "Client-Bound-One-Way-Header", 
        "http://Microsoft.WCF.Documentation", 
        "Custom Outbound Header"
      );
    OperationContext.Current.OutgoingMessageHeaders.Add(outBoundHeader);
    Console.ForegroundColor = ConsoleColor.Red;
    Console.WriteLine("OutgoingHeader:");
    Console.Write("\t");
    Console.ForegroundColor = ConsoleColor.Blue;
    Console.WriteLine(outBoundHeader.ToString());
    Console.ResetColor();
    OperationContext.Current.GetCallbackChannel<IClientCallbackContract>().PushBack("Here's something to examine in response.");
  }

  void WriteHeaders(MessageHeaders headers)
  {
    Console.ForegroundColor = ConsoleColor.Red;
    Console.WriteLine("IncomingHeader:");
    Console.ForegroundColor = ConsoleColor.Blue;
    foreach (MessageHeaderInfo h in headers)
    {
      if (!h.Actor.Equals(String.Empty))
        Console.WriteLine("\t" + h.Actor);
      Console.ForegroundColor = ConsoleColor.White;
      Console.WriteLine("\t" + h.Name);
      Console.ForegroundColor = ConsoleColor.Blue;
      Console.WriteLine("\t" + h.Namespace);
      Console.WriteLine("\t" + h.Relay);
      if (h.IsReferenceParameter == true)
      {
          Console.WriteLine("IsReferenceParameter header detected: " + h.ToString());
      }
    }
    Console.ResetColor();
  }
 Friend Class SampleService
  Implements ISampleService
 #Region "ISampleService Members"

Public Sub Push(ByVal msg As String) Implements ISampleService.Push
	 Console.WriteLine("Proxy: " & msg)
  Me.WriteHeaders(OperationContext.Current.IncomingMessageHeaders)
  Dim outBoundHeader As MessageHeader = MessageHeader.CreateHeader("Client-Bound-One-Way-Header", "http://Microsoft.WCF.Documentation", "Custom Outbound Header")
  OperationContext.Current.OutgoingMessageHeaders.Add(outBoundHeader)
  Console.ForegroundColor = ConsoleColor.Red
  Console.WriteLine("OutgoingHeader:")
  Console.Write(vbTab)
  Console.ForegroundColor = ConsoleColor.Blue
  Console.WriteLine(outBoundHeader.ToString())
  Console.ResetColor()
  OperationContext.Current.GetCallbackChannel(Of IClientCallbackContract)().PushBack("Here's something to examine in response.")
End Sub

Private Sub WriteHeaders(ByVal headers As MessageHeaders)
  Console.ForegroundColor = ConsoleColor.Red
  Console.WriteLine("IncomingHeader:")
  Console.ForegroundColor = ConsoleColor.Blue
           For Each h In headers
               If Not h.Actor.Equals(String.Empty) Then
                   Console.WriteLine(vbTab & h.Actor)
               End If
               Console.ForegroundColor = ConsoleColor.White
               Console.WriteLine(vbTab & h.Name)
               Console.ForegroundColor = ConsoleColor.Blue
               Console.WriteLine(vbTab & h.Namespace)
               Console.WriteLine(vbTab & h.Relay)
               If h.IsReferenceParameter = True Then
                   Console.WriteLine("IsReferenceParameter header detected: " & h.ToString())
               End If
           Next h
  Console.ResetColor()
End Sub

Remarks

Use this property to inspect or modify the request headers that arrive at a service operation or reply headers that arrive at a client proxy.

Applies to