OperationContextScope Constructeurs
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Initialise une nouvelle instance de la classe OperationContextScope.
Surcharges
OperationContextScope(IContextChannel) |
Initialise une nouvelle instance de la classe OperationContextScope qui utilise le IContextChannel spécifié pour créer un OperationContext pour la portée. |
OperationContextScope(OperationContext) |
Initialise une nouvelle instance de la classe OperationContextScope pour créer une portée pour l'objet OperationContext spécifié. |
OperationContextScope(IContextChannel)
Initialise une nouvelle instance de la classe OperationContextScope qui utilise le IContextChannel spécifié pour créer un OperationContext pour la portée.
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)
Paramètres
- channel
- IContextChannel
Le canal à utiliser lors de la création de la portée pour un nouveau OperationContext.
Exemples
L'exemple suivant indique comment utiliser la OperationContextScope pour créer un contexte dans une application cliente afin d'ajouter un en-tête personnalisé au message sortant.
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
Remarques
Utilisez le constructeur OperationContextScope pour créer un OperationContext pour un canal client qui peut être utilisé pour ajouter ou modifier des en-tête de message sortants, lire des en-têtes de messages entrants ou accéder à d'autres propriétés à l'exécution du OperationContext.
Les en-têtes ajoutés à la propriété OperationContext.IncomingMessageHeaders du nouveau OperationContext ne s'appliquent qu'au canal passé au constructeur OperationContextScope. Si l'utilisateur crée un canal dans sa portée, les en-têtes ne sont pas appliqués aux messages envoyés sur le nouveau canal.
S’applique à
OperationContextScope(OperationContext)
Initialise une nouvelle instance de la classe OperationContextScope pour créer une portée pour l'objet OperationContext spécifié.
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)
Paramètres
- context
- OperationContext
Le OperationContext actif dans la portée créée.
Remarques
Utilisez le constructeur OperationContextScope pour créer un bloc de code dans lequel l'objet OperationContextScope spécifié est la portée actuelle.