WCF服务库的使用

fansa 2019-11-11 03:53:22
1. 添加新建项目-创建WCF服务库:MyWCFLibrary

观察默认的接口和实体类:
【1】服务契约:(ServiceContract)服务契约定义了远程访问对象和可供调用的方法。
【1】数据契约:(DataContract)数据契约则是服务端和客户端之间要传送的自定义数据类型。

好处:一旦声明一个类型为DataContract,那么该类型就可以被序列化在服务端和客户端之间传送。

特别注意:只有声明为DataContract的类型的对象可以被传送,且只有成员属性会被传递,成员方法不会被传递。WCF对声明为DataContract的类型提供更加细节的控制,可以把一个成员排除在序列化范围以外,也就是说,客户端程序不会获得被排除在外的成员的任何信息,包括定义和数据。

默认情况下:所有的成员属性都被排除在外,因此需要把每一个要传送的成员声明为DataMember

2. 添加我们需要的接口和实现类

【1】将默认的接口和实现类改为IStudentService和StudentService
【2】在接口中我们可以添加Student实体类,并标注数据契约,和对应的数据成员。
【3】编写接口实现类的中的各种方法。

3. 修改配置文件中的基地址:
<add baseAddress="http://localhost:8733/MyWCFLibrary/StudentService/" />

4. 添加新建项目-创建WCF宿主程序(这里我们依然选择控制台程序):MyWCFConsoleDeploy

【1】添加自定义服务库的引用,找到WCF服务库的DLL文件,添加即可。
【2】添加系统服务库模块引用,添加引用的时候,选择框架,找到System.ServiceModel,添加即可。
【3】在Main方法中,按照以前的方法,编写启动WCF服务的代码。(注意命名空间的引入)。
【4】生成后,用管理员身份启动。这时候会出现错误提示:
WCF 服务有零个应用程序(非基础结构)终结点....

解决方法:WCF服务的配置文件是在宿主项目里面,而不是WCF服务库里面。
把配置文件复制倒刚才添加的控制台程序中即可。运行成功。

5.添加新建项目-创建windows应用程序:CallMyWCF

调用方式和前面一样。需要注意添加WCF模块的引用
...全文
33 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
fansa 2019-11-11
  • 打赏
  • 举报
回复
c#好学员,基本资料

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧