IOperationBehavior.ApplyClientBehavior Método
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.
Implementa uma modificação ou extensão do cliente em toda uma operação.
public:
void ApplyClientBehavior(System::ServiceModel::Description::OperationDescription ^ operationDescription, System::ServiceModel::Dispatcher::ClientOperation ^ clientOperation);
public void ApplyClientBehavior (System.ServiceModel.Description.OperationDescription operationDescription, System.ServiceModel.Dispatcher.ClientOperation clientOperation);
abstract member ApplyClientBehavior : System.ServiceModel.Description.OperationDescription * System.ServiceModel.Dispatcher.ClientOperation -> unit
Public Sub ApplyClientBehavior (operationDescription As OperationDescription, clientOperation As ClientOperation)
Parâmetros
- operationDescription
- OperationDescription
A operação sendo examinada. Use apenas para exame. Se a descrição da operação for modificada, os resultados serão indefinidos.
- clientOperation
- ClientOperation
O objeto de tempo de execução que expõe as propriedades de personalização para a operação descrita por operationDescription
.
Exemplos
O exemplo de código a seguir mostra uma implementação dessas System.ServiceModel.Dispatcher.IParameterInspector gravações no console quando o inspetor é invocado em uma operação. Essa personalização só pode ser anexada ao System.ServiceModel.Dispatcher.DispatchOperation ou e System.ServiceModel.Dispatcher.ClientOperation , portanto, geralmente é inserida por um comportamento de operação.
#region IParameterInspector Members
public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
{
Console.WriteLine(
"IParameterInspector.AfterCall called for {0} with return value {1}.",
operationName,
returnValue.ToString()
);
}
public object BeforeCall(string operationName, object[] inputs)
{
Console.WriteLine("IParameterInspector.BeforeCall called for {0}.", operationName);
return null;
}
#Region "IParameterInspector Members"
Public Sub AfterCall(ByVal operationName As String, ByVal outputs() As Object, ByVal returnValue As Object, _
ByVal correlationState As Object) Implements IParameterInspector.AfterCall
Console.WriteLine("IParameterInspector.AfterCall called for {0} with return value {1}.", _
operationName, returnValue.ToString())
End Sub
Public Function BeforeCall(ByVal operationName As String, ByVal inputs() As Object) As Object Implements _
IParameterInspector.BeforeCall
Console.WriteLine("IParameterInspector.BeforeCall called for {0}.", operationName)
Return Nothing
End Function
O exemplo de código a seguir mostra como o comportamento da operação anexa o inspetor de parâmetros ao runtime.
#region IOperationBehavior Members
public void AddBindingParameters(
OperationDescription operationDescription, BindingParameterCollection bindingParameters
)
{ return; }
public void ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation)
{
clientOperation.ParameterInspectors.Add(new Inspector());
}
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation)
{
dispatchOperation.ParameterInspectors.Add(new Inspector());
}
public void Validate(OperationDescription operationDescription){ return; }
#Region "IOperationBehavior Members"
Public Sub AddBindingParameters(ByVal operationDescription As OperationDescription, _
ByVal bindingParameters As BindingParameterCollection) Implements _
IOperationBehavior.AddBindingParameters
Return
End Sub
Public Sub ApplyClientBehavior(ByVal operationDescription As OperationDescription, ByVal _
clientOperation As ClientOperation) Implements IOperationBehavior.ApplyClientBehavior
clientOperation.ParameterInspectors.Add(New Inspector())
End Sub
Public Sub ApplyDispatchBehavior(ByVal operationDescription As OperationDescription, ByVal dispatchOperation As _
DispatchOperation) Implements IOperationBehavior.ApplyDispatchBehavior
dispatchOperation.ParameterInspectors.Add(New Inspector())
End Sub
Public Sub Validate(ByVal operationDescription As OperationDescription) Implements IOperationBehavior.Validate
Return
End Sub
Comentários
Implemente o ApplyClientBehavior método para exibir, modificar ou adicionar uma extensão personalizada ao runtime do cliente em todas as mensagens usadas com uma operação específica. Para obter detalhes sobre quais personalizações você pode fazer com um objeto de tempo de execução do cliente, consulte ClientRuntime e ClientOperation.
É recomendável que o ApplyClientBehavior método gere um NotImplementedException se o comportamento destina-se apenas ao uso em um aplicativo de serviço.