WCF pipeline architecture is very extendable, allowing the developer to hook-in, in various locations and implement a custom logic as needed. As there are so many extendability points and some might seem to overlap. It is sometimes confusing or overwhelming to decide which extensibility method to use and where exactly to hook it. So how […]
April 30, 2011 by Ariela Boursi
IEndpointBehavior, as its name implies, allows you to add your custom behaviors on the service endpoints both on the client, and on the server. The IEndpointBehavior interface is very similar to the IOperationBehavior interface which was described in the previous post
January 14, 2011 by Ariela Boursi
The ICallContextInitializer located in System.ServiceModel.Dispatcher namespace is used to initialize and restore the thread context (thread local storage, CallContext, etc.) before and after the operation is invoked on the server side. By default, WCF will not do it for you unless you explicitly add this behavior.
December 22, 2010 by Ariela Boursi
IOperationBehavior which is located in System.ServiceModel.Description assembly allows to extend the behaviors of operations for both the client and the server sides.
December 21, 2010 by Ariela Boursi
Overriding the IParameterInspector located in System.ServiceModel.Dispatcher namespace allows inspecting parameters passed in each operation before the call is executed and after the response is returned. IParameterInspector’s interface contains the following methods: public interface IParameterInspector { void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState); object BeforeCall(string operationName, object[] inputs); } The ParameterInspector can be inserted […]
December 15, 2010 by Ariela Boursi
IOperationInvoker is responsible for invoking the methods on the server side with the required parameters and generate the required output parameters and the method’s return value. Its interface contains the following methods: public interface IOperationInvoker { object[] AllocateInputs(); object Invoke(object instance, object[] inputs, out object[] outputs); System.IAsyncResult InvokeBegin(object instance, object[] inputs, System.AsyncCallback callback, object […]
June 3, 2011 by Ariela Boursi
0