Extending ServiceHost and the Service Model Layer

The service model layer is responsible for pulling incoming messages out of the underlying channels, translating them into method invocations in application code, and sending the results back to the caller. Service model extensions modify or implement execution or communication behavior and features involving client or dispatcher functionality, custom behaviors, message and parameter interception, and other extensibility functionality.

In This Section

Extending Clients
Describes the interfaces that can intercept and modify the client runtime, as well as the classes into which you can insert your custom extensions in client applications. For example, you can perform custom client message logging, perform custom message serialization, and so on.

Extending Dispatchers
Describes the interfaces that can intercept and modify the service runtime, as well as the classes into which you can insert your custom extensions in service applications. For example, you can perform custom service logging, service-side message validation, custom dispatching, and so on.

Extensible Objects
Describes the five extensible objects and the IExtensibleObject<T> pattern. The extensible object pattern is used to either extend existing runtime classes with new functionality or to add new state to an object. Extensions, attached to one of the extensible objects, enable behaviors at very different stages in processing to access shared state and functionality attached to a common extensible object that they can access.

Configuring and Extending the Runtime with Behaviors
To change settings on or insert extensions in the WCF runtime, you use Behaviors. WCF includes system-implemented behaviors for controlling throttling, instancing, and many other aspects of services and operations. This section describes how to create your own custom behaviors and how to make them available for use both programmatically and using configuration files.

Extending Hosting Using ServiceHostFactory
Describes how to extend System.ServiceModel.ServiceHostBase, System.ServiceModel.ServiceHost, and use the System.ServiceModel.Activation.ServiceHostFactory classes to customize the host environment.

Reference