我们在开发wcf时,一般用vs建立wcf项目,然后代码自动生成。但如果你想要真正了解全过程,不防,咱门今天晚上自己从零开始。
完成一个wcf的服务发布。
模拟场景:我们要建立一个全国文凭资源查询系统。用服务形式进行公开。
1.首先我们建立一个空白解决方案:MyWCF
2.我们再来建立一个Windows程序项目。DiplomaService如图,记住一定是Windows程序项目
在DiplomaService项目中建立一个
StudentModel类,为学生模型类。包含学生基本信息的类
代码:
然后在建立IStudentAccess的接口,IStudentAccess数据访问契约。在WCF中接口是WCF中的契约类
在IStudentAccess中定义方法:StudentModel GetModel(string studentId);
代码:
接下来:我们就应该来创建一个服务类StudentAccess,那么我们真正的服务类实现我们的契约类接口IStudentAccess
代码:
这样我们三个基本的类都建立好了接下来我们来配置它们,使得它们可以被发布。
3.服务器简单配置。
引用:.net3.5中的WCF必须的类库。需要添加引用从.Net中选择下面的类库。
System.ServiceModel;
System.Runtime.Serialization;
配置:
对契约IStudentAccess接口的配置:
在接口上加属性:[ServiceContract]//应用程序中定义服务协定(表明当前是此为WCF契约)
在方法GetModel上加上属性[OperationContract]//表示(应用程序中服务协定的一部分)
另外,您可以加上自己的名称和命名空间,不加系统在会提供有默认值。
对StudentModel上加上属性:[DataContract],指定当前模型类将被序列化。
对StudentModel的所有公开的属性上加上 [DataMember]表示为序列化成员的数据成员部分。
另外也可以用XmlSerializerFormat对模式类进行序列下,XmlSerializerFormat序列化时,它会把该类的公开属性成员全部直接序列话。
但是XmlSerializerFormat没有DataContract效率高,而DataContract更为灵活。可以指定部分成员序列化。
这样我们的WCF服务程序就写好了,接下来我们就该发布它了,也就是服务上经常说到的承载服务。
那么我们承载服务的载体是什么呢?有很多方式,只要是.NetFormWork的程序都可以承载。比如:控制抬程序,应用程序,IIS服务,Windows服务等等。
那发布方式呢,可以通过配置文件发布,也可以通过代码发布。
添加应用程序配置文件App.Config。配置如下
然后启动程序写上代码
ServiceHost host = new ServiceHost(typeof(StudentAccess));
host.Open();
有没有成功,访问一下连接就知道了
http://localhost:9000/StudentAccess
具体培植说明下再说了,我也是刚刚学习,大家多指教,代码过几天再发布上来。