OperationContextScope Construtores
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Inicializa uma nova instância da classe OperationContextScope.
Sobrecargas
OperationContextScope(IContextChannel) |
Inicializa uma nova instância da classe OperationContextScope que usa o IContextChannel especificado para criar um novo OperationContext para o escopo. |
OperationContextScope(OperationContext) |
Inicializa uma nova instância da classe OperationContextScope para criar um escopo para o objeto OperationContext especificado. |
OperationContextScope(IContextChannel)
Inicializa uma nova instância da classe OperationContextScope que usa o IContextChannel especificado para criar um novo OperationContext para o escopo.
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
O canal a ser usado ao criar o escopo de um novo OperationContext.
Exemplos
O exemplo a seguir mostra como usar o OperationContextScope para criar um novo contexto em um aplicativo cliente para adicionar um cabeçalho personalizado à mensagem de saída.
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
Comentários
Use o OperationContextScope construtor para criar um novo OperationContext canal cliente que possa ser usado para adicionar ou modificar cabeçalhos de mensagem de saída, ler cabeçalhos de mensagem de entrada ou acessar outras propriedades de tempo de execução do OperationContext.
Os cabeçalhos adicionados à OperationContext.IncomingMessageHeaders propriedade do recém-criado OperationContext aplicam-se somente ao canal que foi passado para o OperationContextScope construtor. Se o usuário criar um novo canal dentro de seu escopo, os cabeçalhos não serão aplicados às mensagens enviadas no novo canal.
Aplica-se a
OperationContextScope(OperationContext)
Inicializa uma nova instância da classe OperationContextScope para criar um escopo para o 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
O OperationContext ativo no escopo criado.
Comentários
Use o OperationContextScope construtor para criar um bloco de código no qual o objeto especificado OperationContextScope é o escopo atual.