OperationContextScope Konstruktory
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Inicjuje nowe wystąpienie klasy OperationContextScope.
Przeciążenia
OperationContextScope(IContextChannel) |
Inicjuje OperationContextScope nowe wystąpienie klasy, która używa określonego IContextChannel elementu do utworzenia nowego OperationContext dla zakresu. |
OperationContextScope(OperationContext) |
Inicjuje OperationContextScope nowe wystąpienie klasy w celu utworzenia zakresu dla określonego OperationContext obiektu. |
OperationContextScope(IContextChannel)
Inicjuje OperationContextScope nowe wystąpienie klasy, która używa określonego IContextChannel elementu do utworzenia nowego OperationContext dla zakresu.
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)
Parametry
- channel
- IContextChannel
Kanał do użycia podczas tworzenia zakresu dla nowego OperationContextelementu .
Przykłady
W poniższym przykładzie pokazano, jak użyć elementu OperationContextScope , aby utworzyć nowy kontekst w aplikacji klienckiej w celu dodania niestandardowego nagłówka do komunikatu wychodzącego.
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
Uwagi
Użyj konstruktoraOperationContextScope, aby utworzyć nowy OperationContext kanał klienta, który może służyć do dodawania lub modyfikowania nagłówków komunikatów wychodzących, odczytywania nagłówków komunikatów przychodzących lub uzyskiwania dostępu do innych właściwości czasu wykonywania .OperationContext
Nagłówki dodane do OperationContext.IncomingMessageHeaders właściwości nowo utworzonego OperationContext mają zastosowanie tylko do kanału przekazanego do konstruktora OperationContextScope . Jeśli użytkownik utworzy nowy kanał w swoim zakresie, nagłówki nie są stosowane do komunikatów wysyłanych w nowym kanale.
Dotyczy
OperationContextScope(OperationContext)
Inicjuje OperationContextScope nowe wystąpienie klasy w celu utworzenia zakresu dla określonego OperationContext obiektu.
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)
Parametry
- context
- OperationContext
OperationContext Aktywny w utworzonym zakresie.
Uwagi
Użyj konstruktora OperationContextScope , aby utworzyć blok kodu, w którym określony OperationContextScope obiekt jest bieżącym zakresem.