1.Topics‎ > ‎Dot.Net‎ > ‎D.WCF‎ > ‎

F.WCF Extensibility

Extensibility is very important feature of any framework and WCF has a lot of extensibility points,  Carlos Figueira has posted a full series of blog post on MSDN, Below are the consolidated links from his blog post http://blogs.msdn.com/b/carlosfigueira/archive/2011/03/14/wcf-extensibility.aspx  

1. Service model extensibility 
    1.1. Behaviors 
        1.1.1. IServiceBehavior
        1.1.2. IContractBehavior
        1.1.3. IEndpointBehavior
        1.1.4. IOperationBehavior 
    1.2. WCF Runtime
        1.2.1. Message interception 
            1.2.1.1. I[Client/Dispatch]MessageInspector 
            1.2.1.2. IParameterInspector 
        1.2.2. Mapping between message and operation parameter 
            1.2.2.1. I[Client/Dispatch]MessageFormatter 
        1.2.3. Mapping between message and CLR operations 
            1.2.3.1. I[Client/Dispatch]OperationSelector 
            1.2.3.2. IOperationInvoker  
        1.2.4. Instance [context] creation / initialization
            1.2.4.1. IInstanceProvider 
            1.2.4.2. IInstanceContextProvider 
        1.2.5. Error handling 
            1.2.5.1. IErrorHandler 
        1.2.6. Others 
            1.2.6.1. Initializer interfaces (IInstanceContextInitializer / IChannelInitializer / ICallContextInitializer)
            1.2.6.2. IInteractiveChannelInitializer 
    1.3. Exposing / consuming metadata 
        1.3.1. IWsdlExportExtension
        1.3.2. IWsdlImportExtension (and IOperationContractGenerationExtension / IServiceContractGenerationExtension)
        1.3.3. IPolicy[Import/Export]Extension 
    1.4. Configuration 
        1.4.1. BehaviorExtensionElement 
        1.4.2. BindingElementExtensionElement  / StandardBindingElement / StandardBindingCollectionElement
    1.5. Web Hosting 
        1.5.1. ServiceHostFactory 
    1.6. WCF REST (3.5 / 4.0 model) 
        1.6.1. QueryStringConverter 
        1.6.2. Extending WebHttpBehavior 
    1.7. Others
        1.7.1. Extensible objects: IExtensibleObject<T> and IExtension<T>
2. Channel extensibility 
    2.1. Protocol channels (client)
    2.2. Protocol channels (server)
    2.3. Message encoders 
    2.4. Transport channels 
        2.4.1. Request transport channels - part 1 (synchronous path)
        2.4.2. Request transport channels - part 2 (interaction with runtime extensions)
        2.4.3. Request transport channels - part 3 (asynchronous path)
        2.4.4. Reply transport channels
        2.4.5. Duplex transport channels
3. Serialization extensibility 
    3.1. Serialization callbacks (On[Ser/Deser]ializ[ing/ed]) 
    3.2. IDataContractSurrogate 
    3.3. DataContractResolver 
    3.4. IExtensibleDataObject / IDeserializationCallback / IObjectReference
4. Miscellaneous extensibility scenarios 
    4.1. Hooking into the tracing mechanism
    4.2. Custom serialization in Silverlight 4
    4.3. Extensibility in Windows Phone / Silverlight 3
    4.4. WCF RIA Services