Partager via


OperationContextScope Constructeurs

Définition

Initialise une nouvelle instance de la classe OperationContextScope.

Surcharges

Nom Description
OperationContextScope(IContextChannel)

Initialise une nouvelle instance de la OperationContextScope classe qui utilise le spécifié IContextChannel pour créer une nouvelle OperationContext instance pour l’étendue.

OperationContextScope(OperationContext)

Initialise une nouvelle instance de la OperationContextScope classe pour créer une étendue pour l’objet spécifié OperationContext .

OperationContextScope(IContextChannel)

Source:
OperationContextScope.cs
Source:
OperationContextScope.cs
Source:
OperationContextScope.cs

Initialise une nouvelle instance de la OperationContextScope classe qui utilise le spécifié IContextChannel pour créer une nouvelle OperationContext instance pour l’étendue.

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

Canal à utiliser lors de la création de l’étendue d’un nouveau OperationContext.

Exemples

L’exemple suivant montre comment utiliser pour OperationContextScope 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 OperationContextScope constructeur pour créer un OperationContext nouveau canal client qui peut être utilisé pour ajouter ou modifier des en-têtes de message sortants, lire des en-têtes de message entrants ou accéder à d’autres propriétés d’exécution du OperationContext.

Les en-têtes ajoutés à la OperationContext.IncomingMessageHeaders propriété de la nouvelle création OperationContext s’appliquent uniquement au canal passé au OperationContextScope constructeur. Si l’utilisateur crée un canal dans son étendue, les en-têtes ne sont pas appliqués aux messages envoyés sur le nouveau canal.

S’applique à

OperationContextScope(OperationContext)

Source:
OperationContextScope.cs
Source:
OperationContextScope.cs
Source:
OperationContextScope.cs

Initialise une nouvelle instance de la OperationContextScope classe pour créer une étendue pour l’objet spécifié 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)

Paramètres

context
OperationContext

Actif OperationContext dans l’étendue créée.

Remarques

Utilisez le OperationContextScope constructeur pour créer un bloc de code dans lequel l’objet spécifié OperationContextScope est l’étendue actuelle.

S’applique à