01 2011 档案

摘要:如果你调用WCF服务时,像下面的代码这样在using语句中进行调用,需要注意一个问题。using (CnblogsWcfClient client = new CnblogsWcfClient()){client.Say("Hello, cnblogs.com!"); }上面这段代码看上去没问题,CnblogsWcfClient是一个自动生成的WCF客户端代理,继承自System.ServiceModel.ClientBase。using语句结束时,会调用ClientBase实现的System.IDisposable.Dispose接口,实际就是调用ClientBase的C 阅读全文
posted @ 2011-01-28 13:41 cpcpc 阅读(380) 评论(0) 推荐(0) 编辑
摘要:第一步,新建一个类库,写入代码如下:+展开-C#usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacewangjun{publicclasswangjun{publicintSum(inti,intj){returni+j;}}}第二步,将类库的DLL文件复制到新建的程序集目录下,然后在程序集中加入如下代码:+展开-C#///System.AppDomain类拥有///CreateInstance()///CreateInstanceAndUnWrap()///CreateInstanceFrom()///C 阅读全文
posted @ 2011-01-27 10:25 cpcpc 阅读(354) 评论(0) 推荐(0) 编辑
摘要:在目录下新建一个程序文件,并命名为LateBinding.cs,编写代码如代码7.12所示。代码7.12 晚期绑定:LateBinding.cs+展开-C#usingSystem;//导入相应的命名空间usingSystem.Reflection;usingSystem.IO;classLateBinding{staticvoidMain(string[]args){Console.Write("/n【1】请输入传递给OldClass类Method静态方法的参数:");stringinputA=Console.ReadLine();Console.Write("/ 阅读全文
posted @ 2011-01-27 10:15 cpcpc 阅读(503) 评论(0) 推荐(0) 编辑
摘要:面试例题8:如何动态加载外部程序集并用反射获取指定类型的信息?考点:学习动态加载外部程序集的基本方法,理解Assembly类的Load()方法和LoadFrom()方法的区别。出现频率:★★★解答 通过System.Reflection命名空间下的Assembly类可以动态加载外部程序集,可选方法为Load()方法和 LoadFrom()方法。Load()方法用于加载当前程序集位于相同目录下的外部程序集,LoadFrom()方法可以加载其他目录中的程序集。以上示例中的ClassRef.exe程序作为需要加载的外部程序集,进一步获取其指定类型的信息。在目录下新建一个程序文件,并命名为 AppCl 阅读全文
posted @ 2011-01-27 10:13 cpcpc 阅读(490) 评论(0) 推荐(0) 编辑
摘要:在命令行下编译ClassRef.cs,执行ClassRef程序,程序提示"请输入所检测的类型名称:",输入"ClassA",运行结果如图7.9所示。 主程序首先进入一个不限次数的while循环,循环中首先判断输入值是否为"quit"。如果输入为"quit"则跳出循环,否则将输入值当做类型名称字符串传递给Type类的GetType()方法,获取Type对象的引用tp,并再次传递给ClassB的Ref()方法。执行完Ref()方法后,程序将继续循环,提示"请输入所检测的类型名称:"直到用户输入&qu 阅读全文
posted @ 2011-01-27 10:12 cpcpc 阅读(1112) 评论(0) 推荐(0) 编辑
摘要:解析 反射技术在运行时可以获取程序集中每个类型的成员,包括字段、方法、属性、事件等,并进一步获取这些成员的详细信息。反射技术还可以动态载入外部程序集(私有程序集或共享程序集),获取程序集中类型的相关数据。有意思的是从外部动态载入的程序集还可通过晚期绑定,创建外部程序集中某类型的实例(对象),并且可以进一步调用其成员(如方法和属性)。在这个过程中,并不知道外部程序集的任何信息(甚至不知道该程序集是否存在)。 简而言之,反射技术以编程的方式获取程序集的元数据信息,通常情况下,只能通过ildasm.exe程序载入程序集或模块,才能读取其元数据。 NET的反射技术从程序集中获取各种细节类型元数据(如F 阅读全文
posted @ 2011-01-27 10:10 cpcpc 阅读(2720) 评论(0) 推荐(0) 编辑
摘要:反射技术在多数.NET程序中不会被使用,但是它的确是非常重要的技术,在很多应用程序中有着不可替代的作用。.Net的应用程序体系分为以下4个层次:程序集(Assembly)、模块(Module)、类型(Class)和类型成员(Member),反射技术可以在程序运行时获取这4个层次的元数据信息。只要掌握了反射技术实现的基本原理,就可以轻松解决各种形式的反射技术问题。说明:应用程序域是程序集层次之上的更大的容器,一个应用程序域可以装载多个程序集,本章暂不讨论。 面试例题6:如何使用反射技术获取指定类型中方法的完整信息? 考点:反射技术的基本知识以及获取Type对象的方式,了解System.Refle 阅读全文
posted @ 2011-01-27 10:09 cpcpc 阅读(871) 评论(0) 推荐(0) 编辑
摘要:FTP协议1. 文件传输文件传输服务是网络互联环境所必需的一种服务,当前网络中文件传输最主要的传输方式是使用FTP协议。FTP,全称File Transfer Protocol,中文名为文件传输协议,它可以在网络中传输电子文档、图片、声音、影视、程序及程序等多种类型的文件。如果用户需要将文件从自己的计算机上发送到另一台计算机上,可使用FTP上传(upload)或(put)操作,而更多种的情况是用户使用FTP下载(download)或获取(get)操作从FTP服务器上下载文件。2. FTP工作原理一个完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的 阅读全文
posted @ 2011-01-25 15:29 cpcpc 阅读(3897) 评论(1) 推荐(0) 编辑
摘要:FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。 FTP的命令行格式为:ftp -v -d -i -n -g [主机名],其中 -v显示远程服务器的所有响应信息; -n限制ftp的自动登录,即不使用; .n etrc文件; -d使用调试方式; -g取消全局文件名。 ftp使用的内部命令如下(中括号表示可选项): 1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip. 2.$ macro-a 阅读全文
posted @ 2011-01-25 15:27 cpcpc 阅读(447) 评论(0) 推荐(0) 编辑
摘要:Download source files - 14 Kb Download demo project - 8 Kb http://www.codeproject.com/KB/IP/socketsincs.aspxIntroductionThis article shows how to create both ends of a TCP/IP socket connection between two or more applications. These application may be run, on the same machine, machines connected by 阅读全文
posted @ 2011-01-21 14:31 cpcpc 阅读(410) 评论(0) 推荐(0) 编辑
摘要:对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/IP、UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。 UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。 这里有一张图,表明了. 阅读全文
posted @ 2011-01-21 13:52 cpcpc 阅读(247) 评论(0) 推荐(0) 编辑
摘要:.NET Framework提供了方法,能够将任何数值、枚举以及日期和时间等基数据类型表示为字符串 格式化由格式说明符字符的字符串控制,该字符串指示如何表示基类型值 例如,格式说明符指示:是否应该用科学记数法来表示格式化的数字 例如:格式字符"C",说明货币格式 同时.NET Framework还使用区域性设置,以便用适合于特定区域性的形式表示基类型。 我们可以提供自定义的区域性设置,或者使用与当前线程关联的默认区域性设置。 例如,格式化货币类型的时候,区域性设置指定用于货币符号 要是我们想拥有自己定义的格式化,.NET Framework也允许我们定义自己格式化方案和自定 阅读全文
posted @ 2011-01-21 12:21 cpcpc 阅读(297) 评论(0) 推荐(0) 编辑
摘要:在上一篇中介绍的文件上传下载都是基于同步操作.本篇将就异步操作做个总结.本篇主要总结WebClient类异步上传实现方式和FtpWebRequest类异步上传实现方式,其实明白了异步上传,异步下载就是同样的道理实现.1.WebClient异步上传关键知识说明:WebClient类提供4个异步上传方法,使用方法都是差不多的.WebClient.UploadDataAsync方法将数据缓冲区上载到指定的资源WebClient.UploadFileAsync方法将指定的本地文件上载到指定的资源WebClient.UploadStringAsync方法将指定的字符串上载到指定的资源WebClient. 阅读全文
posted @ 2011-01-21 12:19 cpcpc 阅读(388) 评论(0) 推荐(0) 编辑
摘要:最近项目需要对FTP服务器进行操作,现把实现总结如下:打算分2篇总结:第1篇总结Ftp的一些常规的操作实现(例如:上传,下载,新建,删除,FTP间互传文件等操作)第2篇总结Ftp的操作的一些其他实现(例如:异步上传,异步下载等其他操作)Microsoft .NET Framework 2.0新增加了3个类使我们很方便的对文件传输协议(FTP)服务器进行操作FtpWebRequest类:实现文件传输协议(FTP)客户端public sealed class FtpWebRequest : WebRequestFtpWebResponse类:封装文件传输协议(FTP)服务器对请求的响应 publi 阅读全文
posted @ 2011-01-21 11:30 cpcpc 阅读(381) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章中,我们通过自定义InstanceProvider实现了WCF和微软Enterprise Library Unity Application Block的集成, 今天我们已相同的方式实现WCF与Enterprise Library的另一个Application Block的集成:Policy Injection Application Block (PIAB)。PIAB,通过Method Interception的机制实现了AOP(Aspect Oriented Programing)。按照PIAB的编程方式,我们将非业务逻辑,比如Caching、Authorization、Tra 阅读全文
posted @ 2011-01-18 09:06 cpcpc 阅读(250) 评论(0) 推荐(0) 编辑
摘要:松耦合、高内聚是我们进行设计的永恒的目标,如何实现这样的目标呢?我们有很多实现的方式和方法,不管这些方式和方法在表现形式上有什么不同,他们的思想都可以表示为:根据稳定性进行关注点的分离或者分解,交互双方依赖于一个稳定的契约,而降低对对方非稳定性因素的依赖。从抽象和稳定性的关系来讲,抽象的程度和稳定程度成正相关关系。由此才有了我们面向抽象编程的说法,所以“只有依赖于不变,才能应万变”。然后,对于面向对象的思想来讲,我们的功能通过一个个具体的对象来承载。对象是具体的,不是抽象的;创建对象是必然的;对象的创建从某种程度上即使对面向抽象的违背。所以模块之间的耦合度在很大程度上是由于对象创建的方式决定的 阅读全文
posted @ 2011-01-18 08:43 cpcpc 阅读(221) 评论(2) 推荐(0) 编辑
摘要:在上一篇文章中,我们讨论了如何通过CallContextInitializer实现Localization的例子,具体的做法是将client端的culture通过SOAP header传到service端,然后通过自定义的CallContextInitializer设置当前方法执行的线程culture。在client端,当前culture信息是通过OperationContext.Current.OutgoingMessageHeaders手工至于SOAP Header中的。实际上,我们可以通过基于WCF的另一个可扩展对象来实现这段逻辑,这个可扩展对象就是MessageInspector。我们 阅读全文
posted @ 2011-01-18 08:39 cpcpc 阅读(304) 评论(0) 推荐(0) 编辑
摘要:在本系列的每篇文章中,我多次提到WCF是一个极具可扩展性的分布是消息通信框架。为了让读者对WCF Extension有一个总体的的认识,在这里我会简单列举了我们经常使用的绝大部分的扩展点,以及通过这些扩展点能够解决实现项目开发中的那些问题。有一点需要特别提醒的是:对WCF extensions的灵活应用依赖于你对channel layer和service mode dispatching system的深入理解。所以,如果你对channel layer不甚了解,可以参阅本系列的第一个部分(WCF是如何通过Binding进行通信的)和第二部分(如何对Channel Layer进行扩展——创建自定 阅读全文
posted @ 2011-01-18 08:36 cpcpc 阅读(255) 评论(0) 推荐(0) 编辑
摘要:在本系列的第一部分、第二部分中,我们对WCF的channel layer进行了深入的讨论。我们接下来继续讨论WCF的service mode layer。本篇文章着重介绍service 端的ServiceMode。写作此篇文章旨在达到以下两个目的:希望读者对ServiceMode有一个大致的了解,结合前面介绍的channel layer的相关知识,帮助读者了解WCF的整个实现机制和执行的流程。 介绍ServiceMode涉及到的绝大部分extension point,让读者在具体的项目开发中能够根据实际的需要灵活、自由地对WCF进行扩展。 较之channel layer,ServiceMode 阅读全文
posted @ 2011-01-18 08:34 cpcpc 阅读(369) 评论(0) 推荐(0) 编辑
摘要:注:(本文是从我的某文档中抽取出来的,所以每小节以9.2.x开头,读者勿怪)强名称是由程序集的标识加上公钥和数字签名组成的。其中,程序集的标识包括简单文本名称、版本号和区域性信息(如果提供的话)。强名称是使用相应的私钥,通过程序集文件(包含程序集清单的文件,并因而也包含构成该程序集的所有文件的名称和散列)生成的。Microsoft® Visual Studio® .NET 和在 .NET Framework SDK 中提供的其他开发工具能够将强名称分配给一个程序集。强名称相同的程序集应该是相同的。通过签发具有强名称的程序集,您可以确保名称的全局唯一性。强名称还特别满足以下要 阅读全文
posted @ 2011-01-17 17:04 cpcpc 阅读(18326) 评论(2) 推荐(10) 编辑

点击右上角即可分享
微信分享提示