iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >WCF基础介绍并创建简单应用程序
  • 604
分享到

WCF基础介绍并创建简单应用程序

2024-04-02 19:04:59 604人浏览 泡泡鱼
摘要

什么是WCF? WCF, 英文全称(windows Communication Foundation) , 即为windows通讯平台。 windows想到这里大家都知道了 , WC

什么是WCF?

WCF, 英文全称(windows Communication Foundation) , 即为windows通讯平台。

windows想到这里大家都知道了 , WCF也正是由微软公司推出的这个一个玩意, 基于SOA的一个分布式应用程序框架编程模型

(WCF 编程模型的目标实现也就是 :WCF服务、WCF客户端)

描述: WCF的特点

  • 1. 支持多种消息模式 (单向模式、请求/回复、双工)
  • 2. 支持多种传输协议和编码 (Http,tcp ,msMQ等。)
  • 3. 支持事务,持久化。
  • 4. 统一,安全,可扩展。

关于WCF的基础知识

> WCF的服务结构

  • 协定: 确定消息格式, 服务类型及安全策略和网络协议。
  • 服务运行时: 处理服务运行中发生的各种行为
  • 消息传递: 描述消息的数据格式和交换模型。
  • 激活和承载: 用于发布WCF服务的寄主。

> 如何创建WCF 服务

打开Visual Studio 新建一个项目, 选择WCF 服务库创建并命名为 HelloWCF。

可以看到, 在创建该项目时, 系统默认为我们添加了一个Iservice1(接口) 和一个 service1(实现类)。

在Iservice1中, 可以看到该接口定义了 ServiceContract 特性, 接口方法中定义了 OperationContract 特性

这两类特性则归属于WCF中的服务协定。

*特性:

用来声明服务端定义的所有协定。 在C#中,所有特性类都是从Attribute类继承而来的,而且其名称都有Attribute后缀。用C#编写代码时,

一律用中括号来声明特性类,在ServiceContract定义中, 会发现后面跟着Attribute后缀,声明时省略Attribute后缀,这是建议的用法。

特性类的用途是为紧跟在它后面的目标元素提供设计行为。比如对某个字段声明了某个特性,则该特性的目标元素就是这个字段。目标元素可以是

程序集、类、构造函数、委托、枚举、事件、字段、接口、方法、可移植模块、参数、属性(Property)、返回值以及结构等。另外,目标元素还可以是其他特性类。

在CompositeType类中, 可以看到该类定义了DataContract特性, 与属性中定义了DataMember 特性 ,

而这类则属于WCF中的数据消息协定。

在我们的实际开发过程中, 需要用于数据交互的实体类, 则必须声明类及成员的数据协定, 声明的意义则表示该实体可以序列化。

注: 在WCF定义了DataMember的类成员, 无论是Public、Private, 它都可以被访问。

打开service1 类文件, 集成于Iservice1 的接口并且有具体实现, 在我们测试中, 则是利用客户端进行访问进行演示, 而下面,

要讲的技术一个关于终结点的概念。

> 终结点(EndPoint)

终结点用于指定网络通信的目标, 在应用程序中,可通过Config文件配置<endpoint>节点进行指定。

在终结点中, 含有3个很重要的概念, 俗称ABC, 也就是由地址(Address)、协定(Binding)、绑定(Contract)所组成。

  • Address : 用于发布服务的位置
  • Binding: 确定的某种通讯方式
  • Contact: 公开服务的指定类型

在刚才新建的WCF服务库中, 打开配置文件, 可以看到endpoint节点, 该节点则是用于发布WCF服务。

到现在为止, 只是介绍了WCF服务的一个简单组成, 那么既然是服务,肯定是要给别人用, 所以下一步就是, 需要一个寄主,

举个例子 : 就像地铁卡充值服务, 一般这个服务是独立的, 我们要去便利店也好, 药店或者地铁里面充值, 他们都提供

地铁卡充值服务,而这些充值地铁卡的地方, 可以简称为宿主(服务的承载)。

所以, 我们下一步就是为这个WCF服务创建一个寄主, 简单的例子, 我们以控制台的形式进行创建。

注: 实际上,WCF支持多种寄宿模式, windows应用程序, 控制台应用程序,IIS等。

> 选择右键, 新建一个控制台应用程序, 并命名为 WCFService

然后添加对HelloWCF的项目引用, 以及System.ServiceModel程序集的引用。

注:该编程模型封装在.net框架的System.ServiceModel命名空间中。

将HelloWCF中的APP.config的 system.serviceModel节点复制到控制台的配置文件中。

打开Program文件, 编写以下代码, 用于启动WCF服务。

服务端的构建以及完成, 运行控制台项目, 打开此服务, 不要关闭, 下一步则是建立客户端应用程序,并且访问该WCF服务。

> 创建WCF客户端

1.打开Visual Studio , 新建一个windows窗体应用程序, 命名为: WcfClient

2. 选择项目引用, 右键添加服务引用, 此时回到我们的服务应用程序中, 找到服务的基地址, 在配置文件中复制该地址。

3.添加该地址的服用引用, 命名使用默认(实际开发过程中可根据服务的类型进行定义), 点击确定, 此时我们在FORM1中

添加一个按钮, 用于测试访问服务,

4.双击进入, 创建该服务的实例, 调用接口实现的方法, 弹窗的形式显示结果。

5.测试结果, 成功的调用了WCF服务中的GetData()方法。

到此这篇关于WCF基础介绍并创建简单应用程序的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: WCF基础介绍并创建简单应用程序

本文链接: https://www.lsjlt.com/news/163606.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • WCF基础介绍并创建简单应用程序
    什么是WCF? WCF, 英文全称(windows Communication Foundation) , 即为windows通讯平台。 windows想到这里大家都知道了 , WC...
    99+
    2022-11-13
  • WCF如何创建简单应用程序
    这篇文章主要介绍WCF如何创建简单应用程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是WCF?WCF, 英文全称(windows Communication Foundation) , 即为windows通讯...
    99+
    2023-06-28
  • 简单介绍下MySQL的基础应用
    下面讲讲关于MySQL的基础应用,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL的基础应用这篇文章你一定会有所受益。 1.登入到MySQL云服务器[root@...
    99+
    2022-10-18
  • 创建ASP.NET Core Web应用程序并介绍项目模板
    目录创建ASP.NET Web 应用程序运行ASP.NET Core Web 应用程序:ASP.NET Core应用程序模板空APIWeb应用程序模板Web应用程序(模型视图-控制器...
    99+
    2022-11-13
  • Three.js物理引擎Cannon.js创建简单应用程序
    目录正文在 HTML 文件中引入 Three.js 和 Cannon.js 库创建一些 Three.js 对象并将它们添加到场景中创建一个 Cannon.js 物体在每一帧更新 Th...
    99+
    2023-05-17
    Three.js物理引擎Cannon.js Three.js Cannon.js
  • 如何创建一个简单的 MVC Codeigniter CRUD 应用程序
    Codeigniter 是需要数据库集成和接口的项目的流行选择。主要原因是用于设置和使用数据库连接的简单框架内选项。这意味着 Codeigniter 是 MVC CRUD 应用程序的绝佳选择。在详细介绍这个 Codeigniter CRUD...
    99+
    2022-05-26
  • 使用Ray集群简单创建Python分布式应用程序
    目录什么是 Ray安装 Ray使用 Ray使用 Ray 集群具体步骤:1. 下载 ubuntu 镜像2. 启动 ubuntu 容器,安装依赖3. 启动 head 节点和 worker...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作