第五章 框架类库概览

第二部分:用.Net Framework编程

第五章 框架类库概览

.Net框架几乎所有的功能都是通过一套叫做框架类库(FCL)的托管类型提供的。因为这些类型都是CLS兼容的,所以它们能够通过几乎所有.Net语言进行访问。这些FCL类型按照用途被命名空间(namespace)逻辑地分组,并且输出到属于.Net平台一部分的一系列程序集中。在C#应用程序中使用这些类型,需要在编译时引用适当的程序集(默认会引用大部分基本的程序集)。为了在.Net平台上使用C#高效地工作,理解预定义类库的一般功能很重要。但是,.Net框架类库包含了36个程序集中的120个命名空间中的3542个类型,它是如此的庞大,所以本书不会面面俱到的讨论.Net框架的全部。

这一章我们会给出整个FCL的一个概览(以不同的逻辑功能分为不同的章节)作为替代方案。同时会提供相关类型和命名空间的参考, 这样你可以独立的在.Net框架软件开发工具包(SDK)中浏览它们的详细信息。

这个概览提及的类型和命名空间都基于1.1版本的.Net框架。

浏览FCL的有用工具包括.Net框架SDK文档、Visual Studio .Net文档、WinCV.exe类型浏览器和ILDASM.exe反编译器。

5.1 核心类型

核心类型包含在System命名空间中。System命名空间是FCL的心脏,它包括一些其它类型所依赖的类(class)、接口(interface)和特性(attribute)。FCL的根部是Object类型,其它所有的.Net类型都会继承至它。其它的基本类型是ValueType(结构的基类)、Enum(枚举的基类)、Convert(在基础类型中进行类型转换)、Exception(所有异常的基类)和预定义值类型的装箱版本。接口的使用遍及整个FCL,像ICloneable,IComparable,IFormattable和IConvertible都定义在System命名空间中。一些扩展的类型如DateTime,TimeSpan和DBNull也在此可以得到。还包括其它的一些支持委托、基本数学运算、自定义特性和异常处理的类。

详细信息,请参看System命名空间。

5.2 文本

FCL为文本提供了充足的支持。重要的类型包括System.String类,它处理恒定不变的字符;StringBuilder类,它提供了字符本地化的比较操作和多种字符编码(ASCII, Unicode, UTF-7, and UTF-8),一套提供正则表达式支持的类。


更多信息,请查看下面这些命名空间。

System.Text
System.Text.RegularExpressions

其它命名空间中的一个重要的相关类型是System.String

5.3 集合

FCL提供一套多种用途的数据结构,如System.Array,ArrayList,Hashtable,Queue,Stack,BitArray以及更多。在使用公有基类型和公有接口的标准设计模式的情况下,通过FCL能一致的处理所有预定义和用户定义的类型的集合。

更多信息,请查看下面这些命名空间。

System.Collections
System.Collections.Specialized

其它命名空间中的一个重要的相关类型是System.Array。

5.4 流与I/O

FCL为访问标准的输入、输出和错误流提供很好的支持。有一些类也提供二进制和文本文件I/O操作,为文件系统事件注册通知,访问一个叫做隔离存储(Isolated Storage)的安全的用户存储区。


更多信息,请查看下面这些命名空间。

System.IO
System.IO.IsolatedStorage

其它命名空间中的一个重要的相关类型是System.Console。

5.5网络
FCL提供一套分层的类,以通过使用不同抽象层的网络进行通信,包括原始的Socket访问;支持TCP,UDP和HTTP协议;基于URI和流的高层请求、回应机制;可扩展的协议处理器。

更多信息,请查看下面这些命名空间。

System.Net
System.Net.Sockets

其它命名空间中的一个重要的相关类型是System.IO.Stream。

5.6线程

FCL为编写多线程应用程序提供了充足的支持,包括线程、线程池管理;线程同步机制,如监视器、互斥体、事件,读写锁定等;访问底层平台特性如I/O完成端口和系统定时器。

更多信息,请查看下面这些命名空间。

System.Threading
System.Timers

其它命名空间中的一个重要的相关类型是System.Thread和System.ThreadStaticAttribute。

5.7 安全

FCL提供维护所有.Net框架的代码安全模型元素的类,包括安全策略,安全原则,权限设置和证书。这些类同样也支持密码算法,如DES,3DES,RC2,RSA,DSig,MD5,SHA1和为流传递的Base64编码。

更多信息,请查看下面这些命名空间。

System.Security
System.Security.Cryptography
System.Security.Cryptography.X509Certificates
System.Security.Cryptography.Xml
System.Security.Permissions
System.Security.Policy
System.Security.Principal

5.8 反射和元数据

.Net运行时(runtime)严重依赖元数据的存在,才有能力动态的观察和操作代码的运行。FCL通过一套抽象的映射出应用程序重要元素(程序集、模块、类型和成员)的类来显露这个能力,同时支持在代码执行时创建一个FCL或其它类型的实例。

更多信息,请查看下面这些命名空间。

System.Reflection
System.Reflection.Emit

其它命名空间中的一个重要的相关类型是System.Type,System.Activator和System.AppDomain。

5.9 程序集

FCL提供在程序集的元数据上记录一些如目标操作系统、处理器、程序集版本和其它信息的特性。FCL也提供一些类来操作程序集、模块和强命名程序集。

更多信息,请查看下面这些命名空间。

System.Reflection

5.10 序列化

FCL包括支持序列化操作任意类型图表到或者来自一段流数据。这个序列化操作能够通过文件或者网络来存储、传递复杂的数据结构。默认的序列化器基于二进制和XML格式,但用户也能按自定义的格式进行扩展。

更多信息,请查看下面这些命名空间。

System.Runtime.Serialization
System.Runtime.Serialization.Formatters
System.Runtime.Serialization.Formatters.Binary
System.Runtime.Serialization.Formatters.Soap

其它命名空间中的一个重要的相关类型是System.NonSerializedAttribute和System.SerializableAttribute。

posted @ 2010-11-05 21:51  zhdonghu  阅读(244)  评论(0编辑  收藏  举报