摘要: 在第4篇中,咱们了解了发送/接收SOAP头,从本篇开头,我们不妨更深入地去探求一下有关WCF中的消息到底是啥玩意儿。WCF庞大而复杂,而从 MSDN文档中,你会看到许多很专业很抽象的东西,你不禁会问,文档中所说的,是不是都有用的呢?实用的理论还是有的,不过有些要点确实太抽象了,抽象到 有时候我也不知道用来干吗?不过,数据协定应该算比较有用的东西,至少在你写WCF服务时还是会经常用到。我们先不管数据协定是什么,就从一个例子入手吧。1、以管理员身份运行VS,注意,要以管理员身份运行,不然等会儿可能启动不了服务器端。2、我们这个例子(解决方案)包含两个项目——服务器端和客户端。3、为了简单起键,我都 阅读全文
posted @ 2014-01-19 16:44 woshiliyuan 阅读(663) 评论(0) 推荐(0) 编辑
摘要: 如果你实在不明白Header是个啥玩意儿,你就想一想你发送电子邮件时,是不是有个叫“附件”的东东?对啊,那么SOAP头是不是可以理解为一种附加信息?就是附加到消息正文的内容。消息正文又是啥?WCF除了流模式传输数据外,剩下的基本来说就是消息模式。我们不妨这样理解,WCF的服务器端和客户端是通过消息来交互的,就像 我们之间在发短信一样,我发给你,你可以回复我,这叫“双工”,不好读吧,叫双向好了;你心情不好的时候,可以不回我短信,这叫“单工”,还是不好听,叫 单向吧。对于“消息”,更NB一点的理解就是:客户端每调用一次服务器方法,就是向服务器发送一条消息。嗯,这个理解较为直观,是吧?先不管它专业不 阅读全文
posted @ 2013-12-28 17:54 woshiliyuan 阅读(614) 评论(0) 推荐(0) 编辑
摘要: 我们知道,WCF服务端是先定义服务协定,其实就是一个接口,然后通过实现接口来定义服务类。那么,有一个问题,如果一个服务类同时实现N个接口(也就是有N个协定)呢?结果会如何?不必猜,我们还是通过实验来说明吧。首先,参照下面代码写好服务器端,代码中,我写了三个协定,然后一个服务类同时实现它们。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;using System.ServiceModel.Description;namespace 阅读全文
posted @ 2013-12-28 17:19 woshiliyuan 阅读(469) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章中,我们抛出了N个问题:WCF到底难不难学?复杂吗?如果复杂,可以化繁为简吗?其实,这些问题的答案全取决于你的心态,都说“态度决定一切”,这句话,不知道各位信不信,反正我是信了。首先,敢于挑战自我,乐于接受新事物的 人,就不会觉得有啥难学的,“世上有难事,只怕有心人”;再者,WCF当然复杂了,整个.NET框架都复杂,但不难学,因为.NET有一个先天性优点—— 集成性和统一性严重地好,这也是我乐于研究.NET的主要原因之一,复杂但不混乱。一个统一的国家总比一个四分五裂的国家要强大;第三,任何东西都可以化 繁为简,关键是你持什么样的心态。编程最高境界就是将程序和自然哲学等多种学术融为一体 阅读全文
posted @ 2013-12-07 23:19 woshiliyuan 阅读(572) 评论(0) 推荐(1) 编辑
摘要: WCF难学吗?是啊,这问题估计很多人都会问,也包括阿拉在内,也有此深刻而严重的凝问。也有人说:“如何某项技术可以化繁为简,学起来轻松一点就好了。”也许,人类开生就摆脱不了一种习性——懒惰;不过,也有人认为,很多时候,人们是不是总喜欢把简单的事情复杂化,那么,很多人都觉得很复杂的WCF算不算被人们“神话”了呢?这个问题,我不作回答,现在我们要做一件事,一起来跟着我的步骤,写一个程序再说。这个解决方案中包含两个项目,一个叫Server,另一个叫Client,天生一对。1、启动VS 2010,推荐用2010以上版本(2012 RC版也行),因为越高版本越好用,最好Express的,不要钱,我天天用。 阅读全文
posted @ 2013-12-07 22:26 woshiliyuan 阅读(1268) 评论(2) 推荐(2) 编辑
摘要: 在说LINQ之前必须先说说几个重要的C#语言特性一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在foreach一个集合的时候, 也要为遍历的集合的元素,指定变量的类型 隐式类型的出现, 程序员就不用再做这个工作了。 (2)使用方法 来看下面的代码: var a = 1; //int a = 1; var b = "123";//string b = "123"; var my... 阅读全文
posted @ 2013-11-03 18:32 woshiliyuan 阅读(245) 评论(2) 推荐(1) 编辑
摘要: 安装程序工具使您得以通过在执行指定程序集中的安装程序组件来安装和卸载服务器资源。此工具与 System.Configuration.Install 命名空间中的类一起工作。安转的位置和路径在:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe 卸载的位置和路径在:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe安装程序工具 (Installutil.exe) 安装方法和参数:安装程序工具 (Installutil.exe) 安装方法和参数:insta 阅读全文
posted @ 2013-08-02 23:40 woshiliyuan 阅读(1045) 评论(0) 推荐(0) 编辑
摘要: 终于把我这个鼠标钩子程序实现了,刚开始我把句柄赋值赋错了,也就是SetWindowsHookEx(int idHook, HookProc lpfn,IntPtr hInstance, int threadId)的第三个参数,现在找好了,程序运行一切正常。 钩子(Hook),是windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理windows消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出... 阅读全文
posted @ 2013-06-02 19:38 woshiliyuan 阅读(2087) 评论(2) 推荐(8) 编辑
摘要: 最近接触了vs2010的一款插件:ConfigurationSectionDesigner。ConfigurationSectionDesigner是一个图型化设计.net的配置块和自动生成需要代码和schema定义的codeplex上的一个开源项目,现在分享出来,希望对大家有所帮助。 .Net配置体系中可以是一个Section一个模块。本示例有2个配置块组成,并通过Section整合到.net的默认配置文件App.config里面,用configSource属性分2个外部配置文件分别配置。实现配置文件分模块、分类展示,使用起来也很方便。 首先你要确保你的vs安装了Configurat... 阅读全文
posted @ 2013-05-19 16:23 woshiliyuan 阅读(1812) 评论(3) 推荐(0) 编辑
摘要: ChannelFacTory对象主要用在中间层,目的是提高系统的性能,并且不需要每次都为每个客户端实例化一个新的代理对象。ChannelFactory类:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;using Wrox.CarRentalService.Contracts;namespace Wrox.CarRentalService.ConsoleClient{ class Program { s... 阅读全文
posted @ 2013-03-30 17:20 woshiliyuan 阅读(708) 评论(0) 推荐(0) 编辑