WCF编码规范相关知识详解
创始人
2024-06-23 21:30:20
0

对于大多数的开发人员来说,在工作需要的情况下,需要掌握一两个比较实用的开发工具。而WCF这样一款功能强大的开发工具就是其中一个重要的选择。在这里我们可以先来了解一下WCF编码规范,以方便大家学习这一开发工具的应用。#t#

1、不要将单向调用设置为异步调用

2、不要将单向调用设置为并发调用

3、单向操作不应该包含异常

4、为单向调用启用可靠性。对于单向调用而言,使用有序传递属于可选项

5、避免在会话服务中定义单向操作。如果定义了,则应将它定义为终止操作

  1. [ServiceContract(SessionModeSessionMode=SessionMode.Required)]  
  2. interface IOrderManager  
  3. {  
  4. [OperationContract]  
  5. void SetCustomerId(int customerId);  
  6. [OperationContract(IsInitiating=false)]  
  7. void AddItem(int itemId);  
  8. [OperationContract(IsInitiating=false)]   
  9. decimal GetTotal();  
  10. [OperationContract(IsOneWay=true,IsInitiating=falting,
    IsTerminating=true)]  
  11. void ProcessOrders()   

6、为服务端的回调契约取名时,应使用服务契约名加上Callback后缀:

  1. interfaxe IMyContractCallback  
  2. {...}  
  3. [ServiceContract(CallbackContract=typeof(IMyContractCallback))]  
  4. interface IMyContract  
  5. {...} 

7、尽量将回调操作标记为单向

8、只为回调使用回调契约

9、避免在相同的回调契约中将常规的回调与事件混为一谈

10、在WCF编码规范中,事件操作的设计应遵循如下规范:

a、void返回类型

b、没有out参数

c、标记为单向操作

11、避免在事件管理中使用原来的回调契约,而应该使用发布-订阅框架

12、避免为回调显式地定义创建(Setup)方法和销毁(Teardown)方法

  1. [ServiceContract(CallbackContract=typeof(IMyContractCallback))]  
  2. interface IMyContract  
  3. {  
  4. [OperationContract]  
  5. void DoSomething();  
  6. [OperationContract]  
  7. void Connect();  
  8. [OperationContract]  
  9. void Disconnect();  
  10. }  
  11. interface IMyContractCallback  
  12. {...} 

13、使用类型安全的DuplexClientBase,而不是DuplexClientBase

14、使用类型安全的DuplexChannelFactory,而不是DuplexChannelFactory

15、调试在局域网部署基于WSDualHttpBinding绑定的回调时,应该使用CallbackBaseAddressBehaviorAttribute特性,并将CallbackPort设置为0:

  1. [CallbackBaseAddressBehavior(CallbackPort=0)]  
  2. class MyClient:IMyContrackBack  
  3. {...} 

这就是我们为大家介绍的有关WCF编码规范的一些简要内容。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...