WCF基础知识

         在WCF中实体层,需要被序列化,就需要在实体类上加上[DataContract()]这个特性,并且需要在每个实体字段上加上DataMember这个特性。

          当然一般加DataMember时,还会加上几个参数,类似这样的:[DataMember(Name = "CategoryID", IsRequired = true, Order = 0)]

1)、Name:就是序列化时的名字

2)、IsRequired:值为true时,要求序列化引擎检查对象是否存在该字段;若无,则会有异常抛出。

3)、Order:bool类型值,值为true时,序列化和反序列化过程将会按成员定义的顺序进行,这对依赖于成员位置的反序列化过程无比重要。

4)、EmitDefaultValue表明在数据成员的值等于默认值的情况下,是否还需要将其序列化到最终的XML中。默认值为true,表示默认值会参与序列化。

        WCF宿主有好几种方式,如果我们在IIS中宿主的话,一般是需要建一个svc的文件,建了这个文件后,它会对应生成一个cs文件,在这个cs文件里面调用服务实现层来实现对应的功能。有时候,为了简便起见,可以把这个cs文件删除掉,然后把svc文件打开,里面有一行代码:

<%@ ServiceHost Language="C#" Debug="true" Service="Test..Service.Student_ServiceLib" %>

         把这行代码的Service的值设置成服务实现层对应的实现类的名称即可,这个默认是指向对应的cs文件,我们已经把cs文件删除了,可以直接指向后台的服务实现层的类。

原文地址:https://www.cnblogs.com/xiaoxiangfeizi/p/3539826.html