WCF编码规范(六)操作与调用

 
1、不要将单向调用设置为异步调用
2、不要将单向调用设置为并发调用
3、单向操作不应该包含异常
4、为单向调用启用可靠性。对于单向调用而言,使用有序传递属于可选项
5、避免在会话服务中定义单向操作。如果定义了,则应将它定义为终止操作
[ServiceContract(SessionMode= SessionMode.Required)]
interface IOrderManager
{
      [OperationContract]
      void SetCustomerId(int customerId);
 
      [OperationContract(IsInitiating=false)]
      void AddItem(int itemId);
 
      [OperationContract(IsInitiating=false)]
      decimal GetTotal();
 
      [OperationContract( IsOneWay=true,IsInitiating=falting, IsTerminating=true)]
        void  ProcessOrders() 
}
6、为服务端的回调契约取名时,应使用服务契约名加上Callback后缀:
interfaxe IMyContractCallback
{...}
 
[ServiceContract(CallbackContract=typeof( IMyContractCallback))]
interface IMyContract
{...}
7、尽量将回调操作标记为单向
8、只为回调使用回调契约
9、避免在相同的回调契约中将常规的回调与事件混为一谈
10、事件操作的设计应遵循如下规范:
      a、void返回类型
      b、没有out参数
      c、标记为单向操作
11、避免在事件管理中使用原来的回调契约,而应该使用发布-订阅框架
12、避免为回调显式地定义创建(Setup)方法和销毁(Teardown)方法
[ServiceContract(CallbackContract=typeof( IMyContractCallback))]
interface IMyContract
{
      [OperationContract]
        void DoSomething();
     
      [OperationContract]
        void Connect();
 
      [OperationContract]
      void Disconnect();
}
 
interface IMyContractCallback
{...}
 
13、使用类型安全的DuplexClientBase<T,C>,而不是DuplexClientBase<T>
14、使用类型安全的DuplexChannelFactory<T,C>,而不是DuplexChannelFactory<T>
15、调试在局域网部署基于WSDualHttpBinding绑定的回调时,应该使用CallbackBaseAddressBehav iorAttribute特性,并将CallbackPort设置为0:
[CallbackBaseAddressBehavior(CallbackPort=0)]
class MyClient:IMyContrackBack
{...}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值