摘要:
当我设法学习事件与委托时,我阅读了很多文章去完全地理解它们并使用它们,现在我想把我学到的展现在这里,其中有很多知识你也需要学习。什么是委托? 委托和事件是紧紧联系在一起的。委托是函数(方法)指针,更确切地说,委托保持方法的引用。 委托是一个类。当你创建它的实例的时候,你传递将被委托调用的方法名(做为委托构造器的参数)。 每个委托都有一个特征。例如:Delegate int SomeDelegate(string s, bool b); 是一个委托声明。我之所以说它有一个特征,是因为它都返回一个int类型的值并带有两个参数,类型分别为 string和bool。 我说过,当你实例化委托时,你传递将 阅读全文
摘要:
在前面的三篇文章中我们分别介绍了WCF服务的三种载体:IIS、Self-Host、Windows Service Host。当WCF编写完成后我们一般要通过这三种方式的一种发布WCF服务,当WCF服务发布后,我们就可以编写客户程序来与服务的终结点进行通信。这篇文章我们主要来介绍如何编写客户程序。前提:1.事先建立好一个WCF服务2.使用上面任何一种方式发布WCF。在这里我们使用上篇文章中介绍的WindowsServiceHost发布BookService程序。《图1》《图2》第一步:新建一个项目此项目可以是控制台程序、WinForm、ASP.NET中的任何一个,甚至还可以是其它语言的应用程序, 阅读全文
摘要:
第一步:建立Windows服务程序WindowsServiceHost《图1》《图2》第二步:向ConsoleBookServiceHost程序中添加两个引用:一个是WCF服务库Services项目的引用,另一个是System.ServiceModel引用。第三步:修改Service1的属性在Service1的设计界面中右击,选择“属性”,把其中的(Name)和ServiceName都改为BookServiceHost《图3》第四步:在Service1中编写代码如下《图4》第五步:配置App.Config。在这里我们不再详细说明如何配置了,我们直接把上一次SelfHostBookService 阅读全文
摘要:
简单的自定义事件首先定义一个类来监听客户端事件,这里我们监听键盘的输入。定义一个委托。public delegate void UserRequest(object sender,EventArgs e);前面的object用来传递事件的发生者,后面的EventArgs用来传递事件的细节,现在暂时没什么用处,一会后面的例子中将使用。下面定义一个此委托类型类型的事件public event UserRequest OnUserRequest;下面我们来做一个死循环public void Run(){ bool finished=false; do { if (Console.ReadLine() 阅读全文
摘要:
在自定义用户控件中,我们经常要添加自定义的事件,这时就要使用到委托(delegate)了。 在做开发中,经常都要用到登录。那么,我们就把登录的界面做成一个控件,以后再使用它就方便多了。 登录界面很简单,随便做做的,它有一个“登录”的按钮。我们需要当点击“登录”按钮时,它能执行我们在其它页面定义的登录操作,这时就需要用到委托了,把登录操作委托给“登录”按钮来执行。下面是用户控件的后台代码:publicpartialclassWebUserControl:System.Web.UI.UserControl{publiceventEventHandlerLoginClick;protectedv 阅读全文
摘要:
B/S结构导致了Web应用程序中打印的特殊性。 • 程序运行在浏览器中,打印机在本地,而文件确可能在服务器上,导致了打印控制不是很灵活。 • 格式如何控制和定制等,是我们开发中可能会面对的问题。 打印文档的生成 • 1、客户端脚本方式 一般情况下,主要使用JS 可以分析源页面的内容,将欲打印的页面元素提取出来,实现打印。通过分析源文档的内容,可以生成打印目标文档。 优点:客户端独立完成打印目标文档的生成,减轻服务器负荷; 缺点:源文档的分析操作复杂,并且源文档中的打印内容要有约定。 • 2、服务器端程序方式 利用后台代码从数据库中读取打印源,生成打印目标文档。当的页面生成时, 阅读全文
摘要:
当我们使用DirectoryInfo dir = Directory.CreateDirectory(pathName) 创建目录或者创建一个文件后,有时作为临时文件用完以后需要删除掉,使用File.delete()或者Directory.Delete()经常会遇到“访问被拒绝的错误”;这时我们需要设置文件或者文件夹的只读属性,再进行删除。去除文件夹的只读属性: System.IO.DirectoryInfo DirInfo = new DirectoryInfo(“filepath”); DirInfo.Attributes = FileAttributes.Normal & 阅读全文
摘要:
我們平時在開發過程中經常遇到一些這樣的情況:就是需要把頁面上的一個gridview或table內容以word的形式下載到客戶端.最快的寫法是以文本的方式生成word檔案,如下:private void CreateWord(string content){ Response.Clear(); Response.Buffer = true; Response.AppendHeader("Content-Disposition", "attachment;filename=Report.doc"); Response.ContentType = "application/ms-word"; Res 阅读全文
摘要:
如果你曾经修改了ASP.NET应用程序(dll文件),与修改了bin文件夹或Web.config文件(添加/删除/重命名的文件等),而该网站在运行,你可能已经注意到,这将导致在AppDomain的重新启动。所有的会话状态会丢失和网站再次成功启动,任何登录的用户将被退出(假设你不使用持久Cookie身份验证)。 当然,当我们修改了web.config文件,并保存它,迫使一个AppDomain重新启动,这是我们需要的。我们有时动态创建和删除的文件夹,在ASP.NET 2.0中,文件夹删除将导致一个AppDomain重新启动,这将导致严重的问题。 例如,对于一个电子商务网站的产品,你可能想存储在目录 阅读全文
摘要:
下面我们使用控制台程序来提供WCF的自运行服务第一步:建立控制台应用程序ConsoleBookServiceHost《图1》第二步:向ConsoleBookServiceHost程序中添加两个引用:一个是WCF服务库Services项目的引用,另一个是System.ServiceModel引用。第三步:在ConsoleBookServiceHost 项目中的Program.cs中编写代码。using System;using System.Collections.Generic;using System.Linq;using System.Text;using Services; //导入WC 阅读全文
摘要:
上一篇中,我们创建了一个简单的WCF服务,在测试的时候,我们使用VS2008自带的WCFSVCHost(WCF服务主机)发布WCF服务,以便进行测试。这种VS2008内置的WCFSVCHost只适用于开发人员测试的使用,能进行WCF服务部署。这一篇文章中我们来看一下如何在IIS中部发布我们上一篇中做好的WCF服务。第一步:打开我们上一篇文章中建立的WCF服务项目。图《1》第二步:新建WCF服务站点。在解决方案上右击,选择“添加”-“新建网站”,打开新建网站对话框。在“添加新网站”对话框中,我们选择“WCF服务”,并把网站的名子命名为“BookServiceHost”图《2》建立起来的新的WC 阅读全文
摘要:
在这个实战中我们将使用DataContract,ServiceContract来构建WCF服务,并使用VS2008内置的“WCFSVCHost”运行我们创建的WCF服务,并使用“WCF测试客户端”来测试我们创建的服务。在此WCF服务中我们将建立一个关于Book的服务,并实现对Book的添加、删除和检索操作。第一步:创建“WCF服务库”“文件(F)”-“新建项目(P)...”打开新建项目对话框。在左侧的“项目类型”中选择“WCF”,然后再在右侧的“模板”中选择“WCF服务库”。在下面的“名称”文本框中,填写我们要创建的WCF服务库的项目名称“Services”。《图1》点击确定,会创建出我们的 阅读全文