Extensibility is one of the most important concerns for any programming world. While developing a framework, a good architect always creates hooks, which lets the user explore these hooks and modify the way the framework behaves. WCF, being a powerful and simple tool to create services, also has a lot of hooks on its runtime, which will enable developers to write their own code and modify the way WCF behaves in certain scenarios. There are a great number of hooks available as interfaces in WCF, which allow you to change either the description or runtime of the WCF service.
The description of a service means all the things that are needed to start a service under the WCF environment. It includes: