OperationContextScope Costruttori
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Inizializza una nuova istanza della classe OperationContextScope.
Overload
OperationContextScope(IContextChannel) |
Consente di inizializzare una nuova istanza della classe OperationContextScope che utilizza l'interfaccia IContextChannel specificata per creare un nuovo contesto OperationContext dell'ambito. |
OperationContextScope(OperationContext) |
Consente di inizializzare una nuova istanza della classe OperationContextScope per creare un ambito dell'oggetto OperationContext specificato. |
OperationContextScope(IContextChannel)
Consente di inizializzare una nuova istanza della classe OperationContextScope che utilizza l'interfaccia IContextChannel specificata per creare un nuovo contesto OperationContext dell'ambito.
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)
Parametri
- channel
- IContextChannel
Canale da utilizzare quando si crea l'ambito di un nuovo contesto OperationContext.
Esempio
Nell'esempio seguente viene illustrato come utilizzare OperationContextScope per creare un nuovo contesto in un'applicazione client per aggiungere un'intestazione personalizzata al messaggio in uscita.
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
Commenti
Utilizzare il costruttore OperationContextScope per creare un nuovo contesto OperationContext per un canale client che può essere utilizzato per aggiungere o modificare intestazioni di messaggi in uscita, per leggere intestazioni di messaggi in ingresso o per accedere ad altre proprietà di runtime del contesto OperationContext.
Le intestazioni aggiunte alla proprietà OperationContext.IncomingMessageHeaders del contesto OperationContext appena creato vengono applicate solo al canale passato al costruttore OperationContextScope. Se l'utente crea un nuovo canale all'interno del suo ambito, le intestazioni non vengono applicate ai messaggi inviati sul nuovo canale.
Si applica a
OperationContextScope(OperationContext)
Consente di inizializzare una nuova istanza della classe OperationContextScope per creare un ambito dell'oggetto OperationContext specificato.
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)
Parametri
- context
- OperationContext
Contesto OperationContext attivo nell'ambito creato.
Commenti
Utilizzare il costruttore OperationContextScope per creare un blocco di codice in cui l'oggetto OperationContextScope specificato è l'ambito corrente.