Message.Headers Свойство

Определение

При переопределении в производном классе возвращает заголовки сообщения.When overridden in a derived class, gets the headers of the message.

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

Значение свойства

Объект MessageHeaders, представляющий заголовки сообщения.A MessageHeaders object that represents the headers of the message.

Исключения

Сообщение было удалено.The message has been disposed of.

Примеры

В следующем примере кода показан клиент, использующий фабрику каналов для отправки сообщения и чтения ответа.The following code example shows a client that uses the channel factory to send a message and read the reply.

using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Runtime.Serialization;

namespace ConsoleApplication1
{
    class client
    {


        static void RunClient()
        {
            //Step1: create a binding with just HTTP
            CustomBinding binding = new CustomBinding();
            binding.Elements.Add(new HttpTransportBindingElement());
            //Step2: use the binding to build the channel factory
            IChannelFactory<IRequestChannel> factory =
            binding.BuildChannelFactory<IRequestChannel>(
                             new BindingParameterCollection());
            //open the channel factory
            factory.Open();
            //Step3: use the channel factory to create a channel
            IRequestChannel channel = factory.CreateChannel(
               new EndpointAddress("http://localhost:8080/channelapp"));
            channel.Open();
            //Step4: create a message
            Message requestmessage = Message.CreateMessage(
                MessageVersion.Soap12WSAddressing10,
                "http://contoso.com/someaction",
                 "This is the body data");
            //send message
            Message replymessage = channel.Request(requestmessage);
            Console.WriteLine("Reply message received");
            Console.WriteLine("Reply action: {0}",
                                  replymessage.Headers.Action);
            string data = replymessage.GetBody<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();
        }
        public static void Main()
        {
            Console.WriteLine("Press [ENTER] when service is ready");
            Console.ReadLine();
            RunClient();
            Console.WriteLine("Press [ENTER] to exit");
            Console.ReadLine();
        }
    }
}


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

Комментарии

Класс Message может не иметь ни одного заголовка или иметь сколько угодно заголовков, которые используются как механизм расширения для передачи информации в сообщениях, связанных с приложением.A Message can have zero or more headers that are used as an extension mechanism to pass information in messages that is application-specific. Чтобы добавить в сообщение заголовки сообщения с помощью метода Headers, можно использовать Add.You can use Headers to add message headers to a message by calling the Add method.

Windows Communication Foundation (WCF) предоставляет ряд предопределенных заголовков сообщений, как показано в следующей таблице.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.
FaultToFaultTo Содержит адрес узла, которому следует отправлять ошибки.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.
MessageIDMessageID Содержит уникальный ИД сообщения.Contains the unique ID of the message.
RelatesToRelatesTo Содержит ИД сообщений, связанных с этим сообщением.Contains the IDs of messages that are related to this message.
ReplyToReplyTo Содержит адрес узла, которому следует отправлять ответ на запрос.Contains the address of the node to which a reply should be sent for a request.

Примечания для тех, кто наследует этот метод

При переопределении в производном классе этот метод возвращает объект MessageHeaders для заголовков сообщения.When overridden in a derived class, this method returns a MessageHeaders object for the headers of the message.

Применяется к