Headers Property
Collapse the table of content
Expand the table of content

Message.Headers Property


When overridden in a derived class, gets the headers of the message.

Namespace:   System.ServiceModel.Channels
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

Public MustOverride ReadOnly Property Headers As MessageHeaders

Property Value

Type: System.ServiceModel.Channels.MessageHeaders

A MessageHeaders object that represents the headers of the message.

Exception Condition

The message has been disposed of.

A Message can have zero or more headers that are used as an extension mechanism to pass information in messages that is application-specific. You can use Headers to add message headers to a message by calling the Add method.

Windows Communication Foundation (WCF) provides a number of predefined message headers, as shown in the following table.

Header Name

Contains the header name.


Contains the role that the message is targeting.


Provides a description of how the message should be processed.


Contains the address of the node to which faults should be sent.


Contains the address of the node that sent the message.


Indicates whether the message is a request.


Contains the unique ID of the message.


Contains the IDs of messages that are related to this message.


Contains the address of the node to which a reply should be sent for a request.

Notes to Inheritors:

When overridden in a derived class, this method returns a MessageHeaders object for the headers of the message.

The following code example shows a client that uses the channel factory to send a message and read the reply.

Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.ServiceModel
Imports System.ServiceModel.Channels
Imports System.Runtime.Serialization

Namespace ConsoleApplication1
	Friend Class client

		Private Shared Sub RunClient()
			'Step1: create a binding with just HTTP
			Dim binding As New CustomBinding()
			binding.Elements.Add(New HttpTransportBindingElement())
			'Step2: use the binding to build the channel factory
			Dim factory As IChannelFactory(Of IRequestChannel) = binding.BuildChannelFactory(Of IRequestChannel)(New BindingParameterCollection())
			'open the channel factory
			'Step3: use the channel factory to create a channel
			Dim channel As IRequestChannel = factory.CreateChannel(New EndpointAddress("http://localhost:8080/channelapp"))
			'Step4: create a message
			Dim requestmessage As Message = Message.CreateMessage(MessageVersion.Soap12WSAddressing10, "http://contoso.com/someaction", "This is the body data")
			'send message
			Dim replymessage As Message = channel.Request(requestmessage)
			Console.WriteLine("Reply message received")
			Console.WriteLine("Reply action: {0}", replymessage.Headers.Action)
            Dim data = replymessage.GetBody(Of String)()
			Console.WriteLine("Reply content: {0}", data)
			'Step5: don't forget to close the message
			'don't forget to close the channel
			'don't forget to close the factory
		End Sub
		Public Shared Sub Main()
			Console.WriteLine("Press [ENTER] when service is ready")
			Console.WriteLine("Press [ENTER] to exit")
		End Sub
	End Class
End Namespace

Universal Windows Platform
Available since 8
.NET Framework
Available since 3.0
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top
© 2016 Microsoft