随笔分类 - 01-c#基础
摘要:前言: 在WCF初探-5:WCF消息交换模式之双工通讯(Duplex)博文中,我讲解了双工通信服务的一个应用场景,即订阅和发布模式,这一篇,我将通过一个消息发送的例子讲解一下WCF客户端如何为双工服务创建回调对象。 双工服务指定一个回调协定,客户端应用程序必须实现该协定以便提供一个该服务能够根据协定
阅读全文
posted @ 2020-07-15 15:59
Linybo2008
摘要:前言: 当我们打开WCF基础客户端通道(无论是通过显式打开还是通过调用操作自动打开)、使用客户端或通道对象调用操作,或关闭基础客户端通道时,都会在客户端应用程序中出现异常。而我们知道WCF是基于网络的通讯服务,错误异常也是要基于消息传递的,在WCF中提供了一个错误消息处理的类FaultExcepti
阅读全文
posted @ 2020-07-15 15:57
Linybo2008
摘要:前言: 在上一篇WCF初探-10:WCF客户端调用服务 中,我详细介绍了WCF客户端调用服务的方法,但是,这些操作都是同步进行的。有时我们需要长时间处理应用程序并得到返回结果,但又不想影响程序后面代码部分的执行,这时我们就需要考虑使用异步的方式来调用服务。注意这里的异步是完全针对客户端而言的,与WC
阅读全文
posted @ 2020-07-15 15:46
Linybo2008
摘要:创建WCF 服务客户端应用程序需要执行下列步骤: 获取服务终结点的服务协定、绑定以及地址信息 使用该信息创建 WCF 客户端 调用操作 关闭该 WCF 客户端对象 WCF客户端调用服务存在以下特点: 服务和客户端使用托管属性、接口和方法对协定进行建模。 若要连接客户端应用程序中的服务,则需要获取该服
阅读全文
posted @ 2020-07-15 15:42
Linybo2008
摘要:在WCF初探-8:WCF服务承载 (上)中,我们对宿主的概念、环境、特点做了文字性的介绍和概括,接下来我们将通过实例对这几种寄宿方式进行介绍。为了更好的说明各寄宿环境特点,本实例采用Http和net.tcp两种服务通讯方式,同时寄宿在不同的宿主中。程序结构如下: 服务契约的接口和实现代码如下: us
阅读全文
posted @ 2020-07-15 15:40
Linybo2008
摘要:前言 任何一个程序的运行都需要依赖一个确定的进程中,WCF服务也不例外。如果使用WCF服务,我们就必须将服务承载于创建它并控制它的上下文和生存期的运行时环境中,承载服务环境的程序,我们称之为宿主。WCF服务可以在支持托管代码的任意Windows进程中运行。WCF 提供了统一编程模型,用于生成面向服务
阅读全文
posted @ 2020-07-15 15:39
Linybo2008
摘要:在上一篇WCF服务配置中,文章讲解了WCF的配置所需要的基本节点和属性构造,但是对于初学者的我们在编写程序的时候,往往对这些节点的位置和属性不是特别清楚,所以就导致我们的因配置文件错误而不能运行服务程序。Visual studio 针对服务配置提供了一个可视化的配置界面(Microsoft Serv
阅读全文
posted @ 2020-07-15 15:38
Linybo2008
摘要:WCF服务配置是WCF服务编程的主要部分。WCF作为分布式开发的基础框架,在定义服务以及定义消费服务的客户端时,都使用了配置文件的方法。虽然WCF也提供硬编程的方式,通过在代码中直接设置相关对象的属性来完成服务端与客户端的配置,然而这种方式并不利于后期程序的更改和扩展。因此,配置文件给WCF程序编程
阅读全文
posted @ 2020-07-15 15:28
Linybo2008
摘要:双工通讯Duplex具有以下特点: 1它可以在处理完请求之后,通过请求客户端中的回调进行响应操作 2.消息交换过程中,服务端和客户端角色会发生调换 3.服务端处理完请求后,返回给客户端的不是reply,而是callback请求。 4.Duplex模式对Bindding有特殊的要求,它要求支持Dupl
阅读全文
posted @ 2020-07-15 15:26
Linybo2008
摘要:请求与答复模式( Request/Reply) 这种交换模式是使用最多的一中,它有如下特征: 调用服务方法后需要等待服务的消息返回,即便该方法返回 void 类型 相比Duplex来讲,这种模式强调的是客户端的被动接受,也就是说客户端接受到响应后,消息交换就结束了。 在这种模式下,服务端永远是服务端
阅读全文
posted @ 2020-07-15 15:25
Linybo2008
摘要:单向模式(One-Way Calls): 在这种交换模式中,存在着如下的特征: 只有客户端发起请求,服务端并不会对请求进行回复 不能包含ref或者out类型的参数 没有返回值,返回类型只能为void 通过设置OperationContract的IsOneWay=True可以将满足要求的方法设置为这种
阅读全文
posted @ 2020-07-15 15:22
Linybo2008
摘要:1.前言 上一篇,我们通过VS自带的模板引擎自动生成了一个wcf程序,接下来我们将手动实现一个wcf程序。由于应用程序开发中一般都会涉及到大量的增删改查业务,所以这个程序将简单演示如何在wcf中构建简单的增删改查服务。我们知道WCF是一组通讯服务框架,我将解决方案按大范围划分为服务端,客户端通过服务
阅读全文
posted @ 2020-07-15 15:18
Linybo2008
摘要:1.WCF是什么? WindowsCommunication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,它是.NET框架的一部分,由.NET Framework 3.0开始引入,与Windows Presentation Foundation及 Windows Wo
阅读全文
posted @ 2020-07-15 15:16
Linybo2008
摘要:写在前面 公司有个项目,需要和sharepoint集成,用到了restful,在网上查了一下,wcf方式来实现,还是很方便的,就采用了这种方式,至于web api,没研究过,由于接口急着用,就采用wcf了,用起来也比较顺手。 概念 什么是rest? REST 描述了一个架构样式的互联系统(如 Web
阅读全文
posted @ 2020-07-15 13:37
Linybo2008
摘要:静态类: 在类(class)上加入static修饰, 表示该类无法被实例化,并且该类中,无法实例化变量或函数。 那么如果要在此静态类中添加函数、变量、属性,则必须都是静态的。 静态类的主要特性: 1:仅包含静态成员。 2:无法实例化。 3:静态类的本质,是一个抽象的密封类,所以不能被继承,也不能被实
阅读全文
posted @ 2020-07-14 16:09
Linybo2008
摘要:静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量。在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类;其次,它防止在类的内部声明任何实例字段或方法。 静态类是自C# 2.0才引入的,C# 1
阅读全文
posted @ 2020-07-14 16:05
Linybo2008
摘要:看到网上的一篇讲C#对象生命周期(Object Lifetime)的文章,通俗易懂,而且有图,很适合初学者学习,就翻译过来了。后来发现这是Pro C# 2010 and the .NET 4 Platform的第八章中的一部分。(感谢 大乖乖 提醒)。文中的专业名词第一次出现时,括号里会标注对应的英
阅读全文
posted @ 2020-07-14 13:36
Linybo2008
摘要:无论是值类型的变量或是类类型的变量,其存储单元都是在栈中分配的,唯一不同的是类类型的变量实际上存储的是该类对象的指针,相当于vc6中的CType*,只是在.net平台的语言中将指针的概念屏蔽掉了。我们都知道栈的一大特点就是LIFO(后进先出),这恰好与作用域的特点相对应(在作用域的嵌套层次中,越深层
阅读全文
posted @ 2020-07-14 13:32
Linybo2008
摘要:上一节给大家介绍了 .Net GC的运行机制,下面来讲下与GC相关的重要方法。 第二节.GC关键方法解析 1.Dispose()方法 Dispose可用于释放所有资源,包括托管的和非托管的,需要自己实现。 大多数的非托管资源都要求手动释放,我们应当为释放非托管资源公开一个方法,实现释放非托管资源的方
阅读全文
posted @ 2020-07-10 17:21
Linybo2008
摘要:前言: 组成.Net平台一个很重要的部分 垃圾收集器(Garbage Collection),今天我们就来讲讲它。想想看没有GC,.Net还能称之为一个平台吗?各种语言虽然都被编译成MSIL,但是运行时的资源回收工作却“各自为战”,这样不但增加了编程难度,也会使内存管理工作变得复杂无比(不同语言处理
阅读全文
posted @ 2020-07-10 17:18
Linybo2008

浙公网安备 33010602011771号