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
{...}

你可能感兴趣的:(c,框架,Class,callback,interface,WCF)