IOperationBehavior.ApplyDispatchBehavior Método
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í.
Implementa una modificación o extensión del servicio en esta operación.
public:
void ApplyDispatchBehavior(System::ServiceModel::Description::OperationDescription ^ operationDescription, System::ServiceModel::Dispatcher::DispatchOperation ^ dispatchOperation);
public void ApplyDispatchBehavior (System.ServiceModel.Description.OperationDescription operationDescription, System.ServiceModel.Dispatcher.DispatchOperation dispatchOperation);
abstract member ApplyDispatchBehavior : System.ServiceModel.Description.OperationDescription * System.ServiceModel.Dispatcher.DispatchOperation -> unit
Public Sub ApplyDispatchBehavior (operationDescription As OperationDescription, dispatchOperation As DispatchOperation)
Parámetros
- operationDescription
- OperationDescription
La operación que se está examinando. Sólo se utiliza para el examen. Si se modifica la descripción de la operación, los resultados son indefinidos.
- dispatchOperation
- DispatchOperation
El objeto en tiempo de ejecución que expone las propiedades de personalización para la operación descrita por operationDescription
.
Ejemplos
El siguiente ejemplo de código muestra una implementación de System.ServiceModel.Dispatcher.IParameterInspector que escribe en la consola cuando una operación invoca al inspector. Esta personalización sólo puede asociarse a System.ServiceModel.Dispatcher.DispatchOperation o System.ServiceModel.Dispatcher.ClientOperation por lo que, normalmente, es insertada por un comportamiento de la operación.
#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
El ejemplo de código siguiente muestra cómo el comportamiento de la operación asocia el inspector de parámetro al tiempo de ejecución.
#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
Comentarios
Implemente el método ApplyDispatchBehavior para ver, modificar o extender el servicio en tiempo de ejecución en todos los mensajes o para una operación concreta. Para obtener información detallada sobre qué personalizaciones pueden hacerse en una aplicación de servicio, vea System.ServiceModel.Dispatcher.DispatchRuntime y System.ServiceModel.Dispatcher.DispatchOperation.
Se recomienda que el método ApplyDispatchBehavior inicie una excepción NotImplementedException sólo si pretende utilizar el comportamiento en una aplicación cliente.