OperationContextScope Constructors

Definitie

Initialiseert een nieuw exemplaar van de OperationContextScope klasse.

Overloads

Name Description
OperationContextScope(IContextChannel)

Initialiseert een nieuw exemplaar van de OperationContextScope klasse die gebruikmaakt van de opgegeven IContextChannel klasse om een nieuwe OperationContext voor het bereik te maken.

OperationContextScope(OperationContext)

Initialiseert een nieuw exemplaar van de OperationContextScope klasse om een bereik voor het opgegeven OperationContext object te maken.

OperationContextScope(IContextChannel)

Initialiseert een nieuw exemplaar van de OperationContextScope klasse die gebruikmaakt van de opgegeven IContextChannel klasse om een nieuwe OperationContext voor het bereik te maken.

public:
 OperationContextScope(System::ServiceModel::IContextChannel ^ channel);
public OperationContextScope(System.ServiceModel.IContextChannel channel);
new System.ServiceModel.OperationContextScope : System.ServiceModel.IContextChannel -> System.ServiceModel.OperationContextScope
Public Sub New (channel As IContextChannel)

Parameters

channel
IContextChannel

Het kanaal dat moet worden gebruikt bij het maken van het bereik voor een nieuw OperationContext.

Voorbeelden

In het volgende voorbeeld ziet u hoe u de OperationContextScope toepassing gebruikt om een nieuwe context te maken in een clienttoepassing om een aangepaste koptekst toe te voegen aan het uitgaande bericht.

SampleServiceClient wcfClient = new SampleServiceClient(new InstanceContext(this));
try
{
  using (OperationContextScope scope = new OperationContextScope(wcfClient.InnerChannel))
  {
    MessageHeader header
      = MessageHeader.CreateHeader(
      "Service-Bound-CustomHeader",
      "http://Microsoft.WCF.Documentation",
      "Custom Happy Value."
      );
    OperationContext.Current.OutgoingMessageHeaders.Add(header);

    // Making calls.
    Console.WriteLine("Enter the greeting to send: ");
    string greeting = Console.ReadLine();

    //Console.ReadLine();
    header = MessageHeader.CreateHeader(
        "Service-Bound-OneWayHeader",
        "http://Microsoft.WCF.Documentation",
        "Different Happy Value."
      );
    OperationContext.Current.OutgoingMessageHeaders.Add(header);

    // One-way
    wcfClient.Push(greeting);
    this.wait.WaitOne();

    // Done with service.
    wcfClient.Close();
    Console.WriteLine("Done!");
    Console.ReadLine();
  }
}
catch (TimeoutException timeProblem)
{
  Console.WriteLine("The service operation timed out. " + timeProblem.Message);
  Console.ReadLine();
  wcfClient.Abort();
}
catch (CommunicationException commProblem)
{
  Console.WriteLine("There was a communication problem. " + commProblem.Message);
  Console.ReadLine();
  wcfClient.Abort();
}
Dim wcfClient As New SampleServiceClient(New InstanceContext(Me))
Try
  Using scope As New OperationContextScope(wcfClient.InnerChannel)
            Dim header As MessageHeader = MessageHeader.CreateHeader("Service-Bound-CustomHeader", _
                                "http://Microsoft.WCF.Documentation", "Custom Happy Value.")
    OperationContext.Current.OutgoingMessageHeaders.Add(header)

    ' Making calls.
    Console.WriteLine("Enter the greeting to send: ")
    Dim greeting As String = Console.ReadLine()

    'Console.ReadLine();
            header = MessageHeader.CreateHeader("Service-Bound-OneWayHeader", _
                                                "http://Microsoft.WCF.Documentation", "Different Happy Value.")
    OperationContext.Current.OutgoingMessageHeaders.Add(header)

    ' One-way
    wcfClient.Push(greeting)
    Me.wait.WaitOne()

    ' Done with service. 
    wcfClient.Close()
    Console.WriteLine("Done!")
    Console.ReadLine()
  End Using
Catch timeProblem As TimeoutException
  Console.WriteLine("The service operation timed out. " & timeProblem.Message)
  Console.ReadLine()
  wcfClient.Abort()
Catch commProblem As CommunicationException
  Console.WriteLine("There was a communication problem. " & commProblem.Message)
  Console.ReadLine()
  wcfClient.Abort()
End Try

Opmerkingen

Gebruik de OperationContextScope constructor om een nieuw OperationContext voor een clientkanaal te maken dat kan worden gebruikt om uitgaande berichtkoppen toe te voegen of te wijzigen, binnenkomende berichtkoppen te lezen of toegang te krijgen tot andere runtime-eigenschappen van de OperationContext.

De headers die zijn toegevoegd aan de eigenschap van de OperationContext.IncomingMessageHeaders zojuist gemaakte OperationContext , zijn alleen van toepassing op het kanaal dat is doorgegeven aan de OperationContextScope constructor. Als de gebruiker een nieuw kanaal binnen het bereik maakt, worden de headers niet toegepast op berichten die op het nieuwe kanaal worden verzonden.

Van toepassing op

OperationContextScope(OperationContext)

Initialiseert een nieuw exemplaar van de OperationContextScope klasse om een bereik voor het opgegeven OperationContext object te maken.

public:
 OperationContextScope(System::ServiceModel::OperationContext ^ context);
public OperationContextScope(System.ServiceModel.OperationContext context);
new System.ServiceModel.OperationContextScope : System.ServiceModel.OperationContext -> System.ServiceModel.OperationContextScope
Public Sub New (context As OperationContext)

Parameters

context
OperationContext

De actieve OperationContext in het gemaakte bereik.

Opmerkingen

Gebruik de OperationContextScope constructor om een codeblok te maken waarin het opgegeven OperationContextScope object het huidige bereik is.

Van toepassing op