OperationContextScope Constructores
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.