WCF契约

1、服务契约(命名空间: System.ServiceModel
(1)作用:
描述暴露给外部的类型(接口或类)、服务所支持的操作、使用的信息交换模式和消息的格式。每个WCF服务器必须至少实现一个服务契约。
(2)特性:
1)ServiceContract:定义在接口或类上。
属性:
Name:定义服务契约的名称。
Namespace:定义命名空间。默认值为 http://tempuri.org。
CallbackContract:将另一个服务契约定义为回调契约,使客户端可以接收到服务器端的异步消息。
ProtectionLevel:消息是否需要被签名和加密。值System.Net.Security.ProtectionLevel的枚举值。
SessionMode:是否允许会话或要求会话。
ConfigurationName:服务的配置名称。
2)OperationContract:定义在方法上。表示此方法为一个服务操作,可被客户端调用。
属性:
Name:定义操作名称。不同于方法名。
Action:该操作消息的动作名。
ReplyAction:响应该操作消息的动作名。
IsOneWay:设置该操作是否单向。若为单向,则不支持ReplyAction。
ProtectionLevel:同上。
IsInitialing:该操作是否可以用来初始化会话。
IsTerminating:操作是否终止一个会话。
AsyncPattern:将服务定义为异步实现模式。
3)MessageParameter:可以控制参数和返回值的名称。此属性对于已用MessageContract特性标记的参数无效。
属性:
Name:定义名称。
2、数据契约(命名空间: System.Runtime.Serialization
(1)作用:
服务器和客户端之前要传送的自定义数据类型。
(2)特性:
1)DataContract:定义在类型之上。类型包括类、结构、枚举但不包括接口。此特性不能被继承。
属性:
IsReference:进行序列化时是否保持对象的现有引用结构。
Name:定义名称。
Namespace:定义命名空间。
2)DataMember:被DataContract标记的类的数据成员必须被标记为DataMember。
属性:
IsRequired:是否为必须的成员。默认为false。
Name:定义名称。
Order:定义成员在最终序列化的XML中的位置。默认为按字母顺序。
3、消息契约(命名空间: System.ServiceModel
(1)作用:
同数据契约一样,定义在类型之上。不同的是消息契约关注的是数据成员在SOAP消息中的表示。
(2)特性:
1)MessageContract:定义在类型之上,使之成为消息契约。
属性:
IsWrapped:是否为成员添加一个或多个额外的根节点。
WrapperName:根节点的名称。
WrapperNamespace:根节点的命名空间。
ProtectionLevel:同上。
2)MessageHeader:定义在数据成员。此数据成员将会出现在SOAP消息的头部。
属性:
Name:定义名称。
Namespace:定义命名空间。
ProtectionLevel:同上。
Actor:为一个URI值。表示处理该报头的目标节点。
MustUnderstand:是否必须能够识别该节点。
Relay:该报头是否需要传递给下一个节点。
3)MessageBodyMember:定义在数据成员。此数据成员将会出现在SOAP消息的主体部分。
属性:
Name:定义名称。
Namespace:定义命名空间。
Order:控制成员在SOAP主体部分中出现的位置。默认为按字母顺序。
ProtectionLevel:同上。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值