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
ObjectDisposedException

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.

To

Contains the role that the message is targeting.

Action

Provides a description of how the message should be processed.

FaultTo

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

From

Contains the address of the node that sent the message.

Request

Indicates whether the message is a request.

MessageID

Contains the unique ID of the message.

RelatesTo

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

ReplyTo

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
			factory.Open()
			'Step3: use the channel factory to create a channel
			Dim channel As IRequestChannel = factory.CreateChannel(New EndpointAddress("http://localhost:8080/channelapp"))
			channel.Open()
			'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
			requestmessage.Close()
			replymessage.Close()
			'don't forget to close the channel
			channel.Close()
			'don't forget to close the factory
			factory.Close()
		End Sub
		Public Shared Sub Main()
			Console.WriteLine("Press [ENTER] when service is ready")
			Console.ReadLine()
			RunClient()
			Console.WriteLine("Press [ENTER] to exit")
			Console.ReadLine()
		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
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top
Show:
© 2016 Microsoft