OperationContextScope Konstruktory
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Inicializuje novou instanci OperationContextScope třídy.
Přetížení
OperationContextScope(IContextChannel) |
Inicializuje novou instanci OperationContextScope třídy, která používá zadanou IContextChannel k vytvoření nové OperationContext pro obor. |
OperationContextScope(OperationContext) |
Inicializuje novou instanci OperationContextScope třídy k vytvoření oboru pro zadaný OperationContext objekt. |
OperationContextScope(IContextChannel)
Inicializuje novou instanci OperationContextScope třídy, která používá zadanou IContextChannel k vytvoření nové OperationContext pro obor.
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
Kanál, který se má použít při vytváření oboru pro nový OperationContext.
Příklady
Následující příklad ukazuje, jak použít OperationContextScope k vytvoření nového kontextu v klientské aplikaci k přidání vlastní hlavičky do odchozí zprávy.
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
Poznámky
Pomocí konstruktoru OperationContextScope vytvořte nový OperationContext kanál klienta, který lze použít k přidání nebo úpravě záhlaví odchozích zpráv, čtení hlaviček příchozích zpráv nebo přístupu k jiným vlastnostem doby běhu .OperationContext
Záhlaví přidaná do OperationContext.IncomingMessageHeaders vlastnosti nově vytvořeného OperationContext objektu se vztahují pouze na kanál, který byl předán konstruktoru OperationContextScope . Pokud uživatel v rámci oboru vytvoří nový kanál, záhlaví se na zprávy odesílané v novém kanálu nepoužijí.
Platí pro
OperationContextScope(OperationContext)
Inicializuje novou instanci OperationContextScope třídy k vytvoření oboru pro zadaný OperationContext objekt.
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
Aktivní OperationContext v vytvořeném oboru.
Poznámky
Pomocí konstruktoru OperationContextScope vytvořte blok kódu, ve kterém je zadaný OperationContextScope objekt aktuálním oborem.