Section 4.1. Behaviors


4.1. Behaviors

By and large, the service instance mode is strictly a service-side implementation detail that should not manifest itself on the client side in any way. To support that and a few other local service-side aspects, WCF defines the notion of behaviors. A behavior is a local attribute of a service that does not affect its communication patterns. Clients should be unaware of behaviors, and behaviors do not manifest themselves in the service's binding or published metadata. WCF defines two types of service-side behaviors governed by two corresponding attributes: the ServiceBehaviorAttribute is used to configure service behaviors; that is, behaviors that affect all endpoints (all contracts and operations) of the service. The ServiceBehavior attribute is applied directly on the service implementation class. In the context of this chapter, the ServiceBehavior attribute is used to configure the service instance mode. As shown in Example 4-1, the attribute defines the InstanceContextMode property of the enum type InstanceContextMode. The value of the InstanceContextMode enum controls which instance mode is used for the service.

Example 4-1. The ServiceBehaviorAttribute used to configure instance context mode

 public enum InstanceContextMode {    PerCall,    PerSession,    Single } [AttributeUsage(AttributeTargets.Class)] public sealed class ServiceBehaviorAttribute : Attribute,... {    public InstanceContextMode InstanceContextMode    {get;set;}    //More members } 

The OperationBehaviorAttribute is used to configure operation behaviors, that is, a behaviors that affect a particular operation's implementation only. The OperationBehavior attribute can be applied only on a method that implements a contract operation, never on the operation definition in the contract itself. You will see the use of the OperationBehavior later on in this chapter and in subsequent chapters as well.




Programming WCF Services
Programming WCF Services
ISBN: 0596526997
EAN: 2147483647
Year: 2004
Pages: 148
Authors: Juval Lowy

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net