摘要:
一、内存申请 1.建议使用calloc申请内存,尽量不要使用malloc。 calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。 2.申请内存大小必须大于0. (1)使用0字节长度申请内存的行为是没有定义的,在引用内存申请函数返回地址时会引发不 阅读全文
摘要:
.NET中的配置文件App.config的读取和写入需要引用System.Configuration,若读取WCF相关配置需要System.ServiceModel.Configuration. 一、自定义ConfigurationSection 继承ConfigurationSection,并为... 阅读全文
摘要:
一、多线程不安全方式实现 public sealed class SingleInstance { private static SingleInstance instance; private SingleInstance() { } publi... 阅读全文
摘要:
一、考虑到安全因素,为了避免将服务端的异常发送给客户端。默认情况下,服务端出现异常会对异常屏蔽处理后,再发送到客户端。所以客户端捕捉到的异常都是同一个FaultException异常。例如在服务端直接产生一个空引用异常,客户端捕获到的是上述异常。服务端: class Program { ... 阅读全文
摘要:
一、会话模式简介与示例代码 会话模式下,客户端和服务实例上下文、服务实例是一一对应关系,每一个客户端都在服务端都有自己对应的服务实例上下文。如下图所示 服务端使用会话模式的条件: 1.使用支持会话模式的绑定,如WSHttpBinding、WS2007HttpBinding、NetTcpBindin... 阅读全文
摘要:
单例模式效果可以用下面这张图表示,服务端的服务实例只有一个,任何一个客户端访问的服务端都是相同的服务实例。意味着服务端可以留下不同客户端的脚印。 使用也很简单,只需要将ServiceBehavior的上下文模式InstanceContextMode设置为Single即可。可以参照上一篇介绍实例上... 阅读全文
摘要:
在创建一个服务端的时候都会依托于ServiceHost对象,里面存在一个SingletonInstance指向一个服务实例。而ServiceHost最终都是寄在InstanceContext中。对于单调模式,客户端的每次调用服务端都会创建一个全新的上下文和服务实例。 为了验证上述流程,写了下面这个... 阅读全文
摘要:
当客户端调用一个WCF接口时,客户端将请求消息发送到服务端,服务端再返回回复消息。WCF内部实现了消息处理的所有细节,但是并不意味着一切不可更改。WCF也提供了一些方法让开发人员在消息发送前对消息进行修改,在收到消息后也可以获取消息主体、报头。本篇介绍一个例子来手工控制消息发送的细节。介绍之前先介... 阅读全文
摘要:
一、消息版本 为了区别消息的结构和寻址机制,W3C定制了SOAP1.1和SOAP1.2定义消息的结构,WS-Addressing 2004和WS-Addressing 1.0定义消息的寻址机制。它们对应的命名空间如下: SOAP1.1:http://schemas.xmlsoap.org/soap... 阅读全文
摘要:
一、数据类型的等效性 例如下面定义的两个类成员名称、定义顺序都不一样,但是在DataContract、DataMember的Name属性作用下,两个类的实例对象序列化后的xml是一样的,因此Order和OrderV2对于DataContractSerializer序列化是等效的。 [DataC... 阅读全文