Compartir a través de


OperationContextScope Constructores

Definición

Inicializa una nueva instancia de la clase OperationContextScope.

Sobrecargas

OperationContextScope(IContextChannel)

Inicializa un nueva instancia de la clase OperationContextScope que utiliza el IContextChannel especificado para crear un nuevo OperationContext para el ámbito.

OperationContextScope(OperationContext)

Inicializa un nueva instancia de la clase OperationContextScope para crear un ámbito para el objeto OperationContext especificado.

OperationContextScope(IContextChannel)

Inicializa un nueva instancia de la clase OperationContextScope que utiliza el IContextChannel especificado para crear un nuevo OperationContext para el ámbito.

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)

Parámetros

channel
IContextChannel

El canal que usar para crear el ámbito para un nuevo OperationContext.

Ejemplos

El ejemplo siguiente muestra cómo utilizar OperationContextScope para crear un nuevo contexto en una aplicación cliente con objeto de agregar un encabezado personalizado al mensaje saliente.

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

Comentarios

Utilice el constructor OperationContextScope para crear un nuevo OperationContext para un canal de cliente que se puede usar para agregar o modificar los encabezados de mensajes salientes, leer los encabezados de mensajes entrantes o tener acceso a otras propiedades del tiempo de ejecución de OperationContext.

Los encabezados agregados a la propiedad OperationContext.IncomingMessageHeaders del OperationContext que se acaba de crear sólo se aplican al canal que se pasó al constructor OperationContextScope. Si el usuario crea a continuación un nuevo canal dentro de su ámbito, los encabezados no se aplicarán a los mensajes enviados al nuevo canal.

Se aplica a

OperationContextScope(OperationContext)

Inicializa un nueva instancia de la clase OperationContextScope para crear un ámbito para el objeto OperationContext especificado.

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)

Parámetros

context
OperationContext

El OperationContext activo en el ámbito creado.

Comentarios

Utilice el constructor OperationContextScope para crear un bloque de código dentro del cual el objeto OperationContextScope especificado es el ámbito actual.

Se aplica a