- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《展现C#》 用C#写组件
《展现C#》 用C#写组件
这一章关于用C#写组件。你学到如何写一个组件,如何编译它,且如何在一个客户程序中使用它。更深入一步是运用名字空间来组织你的应用程序。
这章由两个主要大节构成:
。你的第一个组件
。使用名字空间工作8.1 你的第一个组件
到目前为止,在本书中提到的例子都是在同一个应用程序中直接使用一个类。类和它的使用者被包含在同一个执行文件中。现在我们将把类和使用者分离到组件和客户,它们分别位于不同的二进制文件中(可执行文件)。
尽管你仍然为组件创建一个 DLL,但其步骤与用C++写一个COM组件差别很大。你很少涉及到底层结构。以下小节说明了如何构建一个组件以及使用到它的客户:
。构建组件
。编译组件
。创建一个简单的客户应用程序
8.1.1 构建组件
因为我是一个使用范例迷,我决定创建一个相关Web的类,以方便你们使用。它返回一个Web网页并储存在一个字符串变量中,以供后来重用。所有这些编写都参考了.NET框架的帮助文档。
类名为RequestWebPage;它有两个构造函数—— 一个属性和一个方法。属性被命名为URL,且它储存了网页的Web地址,由方法
GetContent返回。这个方法为你做了所有的工作(见清单8.1)。清单
8.1 用于从Web服务器返回HTML网页的RequestWebPage 类
1:
using System;
2: using System.Net;
3: using System.IO;
4: using System.Text;
5:
6: public class RequestWebPage
7: {
8: private const int BUFFER_SIZE = 128;
9: private string m_strURL;
10:
11: public RequestWebPage()
12: {
13: }
14:
15: public RequestWebPage(string strURL)
16: {
17: m_strURL = strURL;
18: }
19:
20: public string URL
21: {
22: get { return m_strURL; }
23: set { m_strURL = value; }
24: }
25: public void GetContent(out string strContent)
26: {
27: // 检查 URL
28: if (m_strURL == )
29: throw new ArgumentException(URL must be
provided.);
30:
31: WebRequest theRequest = (WebRequest)
WebRequestFactory.Create(m_strURL);
32: WebResponse theResponse = theRequest.GetResponse();
33:
34: // 给回应设置字节缓冲区
35: int BytesRead = 0;
36: Byte[] Buffer = new Byte[BUFFER_SIZE];
37:
38: Stream ResponseStream =theResponse.GetResponseStream();
39: BytesRead = ResponseStream.Read(Buffer, 0, BUFFER_SIZE);
40:
41: //使用 StringBuilder 以加速分配过程
42: StringBuilder strResponse = new StringBuilder();
43: while (BytesRead != 0 )
44: {
45: strResponse.Append(Encoding.ASCII.GetString
(Buffer,0,BytesRead));
46: BytesRead = ResponseStream.Read(Buffer, 0,
BUFFER_SIZE);
47: }
48:
49: // 赋给输出参数
50: strContent = strResponse.ToString();
51: }
52: }
本应该利用无参数构造函数完成工作,但我决定在构造函数中初始化URL,这可能会很有用。当后来决定要改变URL时——为了返回第二个网
页,例如,通过URL属性的get和set访问标志使它被公开了。有趣的事始于GetContent方法。首先,代码对URL实行十分简单的检查,如果它不适合,就会引发一个Ar
您可能关注的文档
- WI027(SIEMENS-HS50机器操作指引).doc
- win7下texlive2014、metapost、asymptote的安装、配置与测试(献给小白).docx
- Windows 8首款官方主题:黄昏与星光.docx
- Windows 8超详细图文评测.docx
- Windows7 下编译 MatConvNet 和 CUDA75.docx
- women of achievement 单元练习题及答案4.doc
- Word往年笔试题(答案).doc
- Word版企业管理制度-TS16949贯标各部门职责.doc
- ws5[经济学]保险学原理_刘连生_《保险学原理》模拟试卷一.doc
- wsn成都市建筑工程和市政基础设施工1.doc
文档评论(0)