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
| Nome | Descrizione |
|---|---|
| OperationContextScope(IContextChannel) |
Inizializza una nuova istanza della OperationContextScope classe che utilizza l'oggetto specificato IContextChannel per creare un nuovo OperationContext oggetto per l'ambito. |
| OperationContextScope(OperationContext) |
Inizializza una nuova istanza della OperationContextScope classe per creare un ambito per l'oggetto specificato OperationContext . |
OperationContextScope(IContextChannel)
- Origine:
- OperationContextScope.cs
- Origine:
- OperationContextScope.cs
- Origine:
- OperationContextScope.cs
Inizializza una nuova istanza della OperationContextScope classe che utilizza l'oggetto specificato IContextChannel per creare un nuovo OperationContext oggetto per l'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 usare durante la creazione dell'ambito per un nuovo OperationContextoggetto .
Esempio
Nell'esempio seguente viene illustrato come usare 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
Usare il OperationContextScope costruttore per creare un nuovo OperationContext canale per un canale client che può essere usato per aggiungere o modificare intestazioni di messaggio in uscita, leggere le intestazioni dei messaggi in ingresso o accedere ad altre proprietà di runtime dell'oggetto OperationContext.
Le intestazioni aggiunte alla OperationContext.IncomingMessageHeaders proprietà del appena creato OperationContext si applicano solo al canale passato al OperationContextScope costruttore. Se l'utente crea un nuovo canale all'interno dell'ambito, le intestazioni non vengono applicate ai messaggi inviati nel nuovo canale.
Si applica a
OperationContextScope(OperationContext)
- Origine:
- OperationContextScope.cs
- Origine:
- OperationContextScope.cs
- Origine:
- OperationContextScope.cs
Inizializza una nuova istanza della OperationContextScope classe per creare un ambito per l'oggetto specificato OperationContext .
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
Oggetto attivo OperationContext nell'ambito creato.
Commenti
Usare il OperationContextScope costruttore per creare un blocco di codice all'interno del quale l'oggetto specificato OperationContextScope è l'ambito corrente.