OperationContextScope Constructors
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.