我们今天将会为大家重点介绍一下WCF服务行为的一些相关知识。希望对于初学者来说,可以通过本文介绍的内容充分掌握这一应用技术。在介绍服务寄宿的时候,我们谈到过WCF下“契约(Contract)”和“行为(Behavior)”的区别:契约是涉及双边的描述(契约是服务的提供者和服务消费者进行交互的手段),那么行为就是基于单边的描述。客户端行为体现的是WCF如何进行服务调用的方式,而服务端行为则体现了WCF的请求分发方式。所以服务契约会通过元数据对外发布,而WCF服务行为则对于客户端是透明的。
对于客户端来讲,它所关心的是通过服务调用能够获得正确的结果,而不会关心服务端采用怎样的模式来激活服务实例。所以,WCF实例管理通过WCF服务行为体现,不同的实例上下文模式通过ServiceBehaviorAttribute特性指定。在ServiceBehaviorAttribute中,通过设置InstanceContextMode属性来指定不同的服务实例上下文模式。
- 1: [AttributeUsage(AttributeTargets.Class)]
- 2: public sealed class ServiceBehaviorAttribute :
Attribute, IServiceBehavior- 3: {
- 4: //其他成员
- 5: public InstanceContextMode InstanceContextMode
{ get; set; }- 6: }
属性InstanceContextMode的类型为System.ServiceModel.InstanceContextMode枚举,三个枚举值PerCall、PerSession和Single分别表示上述的三种实例上下文模式。默认选项为PerSession。
- public enum InstanceContextMode
- {
- PerCall,
- PerSession,
- Single
- }
WCF服务行为的相关内容就为大家介绍到这里。
【编辑推荐】