Condividi tramite


OperationContext.IncomingMessageHeaders Proprietà

Definizione

Consente di ottenere le intestazioni dei messaggi in ingresso relative al contesto 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

Valore della proprietà

MessageHeaders

Oggetto MessageHeaders contenente le intestazioni dei messaggi in ingresso.

Esempio

Nell'esempio di codice seguente viene descritto come leggere le intestazioni dei messaggi in ingresso in un'operazione di servizio.

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

Commenti

Utilizzare questa proprietà per esaminare o modificare le intestazioni di richiesta che arrivano a un'operazione di servizio oppure le intestazioni di risposta che arrivano a un proxy client.

Si applica a