WCF編碼規范相關知識詳解
對于大多數的開發人員來說,在工作需要的情況下,需要掌握一兩個比較實用的開發工具。而WCF這樣一款功能強大的開發工具就是其中一個重要的選擇。在這里我們可以先來了解一下WCF編碼規范,以方便大家學習這一開發工具的應用。#t#
1、不要將單向調用設置為異步調用
2、不要將單向調用設置為并發調用
3、單向操作不應該包含異常
4、為單向調用啟用可靠性。對于單向調用而言,使用有序傳遞屬于可選項
5、避免在會話服務中定義單向操作。如果定義了,則應將它定義為終止操作
- [ServiceContract(SessionModeSessionMode=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、在WCF編碼規范中,事件操作的設計應遵循如下規范:
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綁定的回調時,應該使用CallbackBaseAddressBehaviorAttribute特性,并將CallbackPort設置為0:
- [CallbackBaseAddressBehavior(CallbackPort=0)]
- class MyClient:IMyContrackBack
- {...}
這就是我們為大家介紹的有關WCF編碼規范的一些簡要內容。