The client and service runtimes expose various extensibility points that the developer can leverage. These extensibility points can be used to customize various WCF capabilities, such as encoding messages, intercepting parameters, or selecting the operations to invoke on the service side.
A client-side extension is also called a proxy extension. Some available client-side extensions are listed as follows:
Parameter inspection: Performs custom validation, value modification, or special filtering for method parameters, before these method calls are translated to messages
Message formatting for serialization: Customizes the serialization process by using a custom formatter object
Message inspection: Implements cross-operation messaging features such as message logging, validation, or transformations functionality
Result processing: Inspects the returned result, formats the message, and customizes the deserialization process after the service invocation...