标题：c#高级编程(第7版)
基本信息
  原书名： Professional C# 4.0 and .NET 4
原出版社： Wrox
作者： (美)Christian Nagel Bill Evjen Jay Glynn 
译者： 李铭
出版社：清华大学出版社
ISBN：9787302239376
出版日期：2010 年11月
开本：16开
页码：1473
编辑推荐
C#经典名著!Wrox畅销书！累计销售已达8万册！
荣获“2005年最权威的十大IT图书”、“2005年度引进版科技类优秀图书”、
“2006年最受读者喜爱的十大技术开发类图书”、“2007年最畅销的C#零售图书”、
“2008年度优秀IT技术图书”、“2009年度全行业优秀畅销品种”等奖项。
此次升级面向C# 4、.NET 4和Visual Studio 2010，是目前市场上的最新版本。
内容简介
本书是Wrox畅销书，C#经典名著！2009年度全行业优秀畅销书。自第一版出版以来，都是国内读者的普遍好评，累计销量近十万册。 《C#高级编程(第7版)》的顶级专家作者团队首先复习了C#的基础知识，之后详细讲解了该语言和架构中的所有新增功能，使读者能立即开始编写Windows应用程序和ASP.NET Web应用程序。 本书几乎涵盖C#语言的所有功能，对于C#初学者和有经验的程序员是值得大力推荐的书籍。实践证明，本书是关于C# 和 Visual Studio的一本全面而且权威的参考书。 新的C# 4对于在Visual Studio 2010中编写代码是必不可少的。这本实用指南强调，C#是编写.NET 4应用程序的首选语言。《C#高级编程(第7版)》的顶级专家作者团队首先复习了C#的基础知识，之后详细讲解了该语言和架构中的所有新增功能，使读者能立即开始编写Windows应用程序和ASP.NET Web应用程序。 
本书主要内容 
◆ 回顾.NET体系结构、对象、泛型、继承、数组、运算符、类型强制转换、委托、事件、Lambda表达式等
◆ 详细论述C#中的动态对象、命名参数和可选参数、COM专用的交互操作功能、安全类型变体
◆ 阐述.NET 4的新增功能、WF 4、ADO.NET 数据服务、MEF、并行任务库和PLINQ 
◆ 深入探讨LINQ、WCF、WPF、流文档和固定文档及Silverlight等功能强大的技术 
◆ 回顾ASP.NET编程，介绍ASP.NET MVC和ASP.NET 动态数据等新功能 
◆ 讨论使用WCF、MSMQ、点对点和联合进行通信.
目录
第ⅰ部分 c# 语 言 
第1章 .net体系结构        3 
1.1 c#与.net的关系        3 
1.2 公共语言运行库        4 
1.2.1 平台无关性        4 
1.2.2 提高性能        4 
1.2.3 语言的互操作性        5 
1.3 中间语言        6 
1.3.1 面向对象和接口的支持        6 
1.3.2 不同的值类型和引用类型        7 
1.3.3 强数据类型化        8 
1.3.4 通过异常处理错误        12 
1.3.5 特性的使用        13 
1.4 程序集        13 
1.4.1 私有程序集        14 
1.4.2 共享程序集        14 
1.4.3 反射        14 
1.4.4 并行编程        15 
1.5 .net framework类        15 
1.6 名称空间        16 
.1.7 用c#创建.net应用程序        16 
1.7.1 创建asp.net应用程序        16 
1.7.2 创建windows窗体        18 
1.7.3 使用wpf        18 
1.7.4 windows控件        19 
1.7.5 windows服务        19 
1.7.6 wcf        19 
1.7.7 windows wf        19 
1.8 c#在.net企业体系结构 
中的作用        19 
1.9 小结        21 
第2章 核心c#        23 
2.1 第一个c#程序        23 
2.1.1 代码        24 
2.1.2 编译并运行程序        24 
2.1.3 详细介绍        25 
2.2 变量        26 
2.2.1 变量的初始化        27 
2.2.2 类型推断        28 
2.2.3 变量的作用域        29 
2.2.4 常量        31 
2.3 预定义数据类型        32 
2.3.1 值类型和引用类型        32 
2.3.2 cts类型        33 
2.3.3 预定义的值类型        33 
2.3.4 预定义的引用类型        36 
2.4 流控制        38 
2.4.1 条件语句        38 
2.4.2 循环        42 
2.4.3 跳转语句        45 
2.5 枚举        46 
2.6 名称空间        47 
2.6.1 using语句        49 
2.6.2 名称空间的别名        49 
2.7 main()方法        50 
2.7.1 多个main()方法        50 
2.7.2 给main()方法传递参数        52 
2.8 有关编译c#文件的更多内容        52 
2.9 控制台i/o        54 
2.10 使用注释        56 
2.10.1 源文件中的内部注释        56 
2.10.2 xml文档        56 
2.11 c#预处理器指令        58 
2.11.1 #define和 #undef        59 
2.11.2 #if, #elif, #else和#endif        59 
2.11.3 #warning和 # error        60 
2.11.4 #region和#endregion        61 
2.11.5 #line        61 
2.11.6 #pragma        61 
2.12 c#编程规则        62 
2.12.1 关于标识符的规则        62 
2.12.2 用法约定        63 
2.13 小结        68 
第3章 对象和类型        69 
3.1 类和结构        69 
3.2 类        70 
3.2.1 数据成员        70 
3.2.2 函数成员        71 
3.2.3 只读字段        83 
3.3 匿名类型        84 
3.4 结构        85 
3.4.1 结构是值类型        86 
3.4.2 结构和继承        87 
3.4.3 结构的构造函数        87 
3.5 部分类        87 
3.6 静态类        89 
3.7 object类        89 
3.7.1 system.object()方法        90 
3.7.2 tostring()方法        90 
3.8 扩展方法        92 
3.9 小结        93 
第4章 继承        95 
4.1 继承的类型        95 
4.1.1 实现继承和接口继承        95 
4.1.2 多重继承        95 
4.1.3 结构和类        96 
4.2 实现继承        96 
4.2.1 虚方法        97 
4.2.2 隐藏方法        98 
4.2.3 调用函数的基类版本        99 
4.2.4 抽象类和抽象函数        100 
4.2.5 密封类和密封方法        100 
4.2.6 派生类的构造函数        101 
4.3 修饰符        106 
4.3.1 可见性修饰符        106 
4.3.2 其他修饰符        106 
4.4 接口        107 
4.4.1 定义和实现接口        108 
4.4.2 派生的接口        111 
4.5 小结        113 
第5章 泛型        115 
5.1 概述        115 
5.1.1 性能        116 
5.1.2 类型安全        117 
5.1.3 二进制代码的重用        117 
5.1.4 代码的扩展        117 
5.1.5 命名约定        118 
5.2 创建泛型类        118 
5.3 泛型类的功能        122 
5.3.1 默认值        123 
5.3.2 约束        123 
5.3.3 继承        126 
5.3.4 静态成员        127 
5.4 泛型接口        127 
5.4.1 协变和抗变        128 
5.4.2 泛型接口的协变        129 
5.4.3 泛型接口的抗变        130 
5.5 泛型结构        131 
5.6 泛型方法        134 
5.6.1 泛型方法示例        134 
5.6.2 带约束的泛型方法        135 
5.6.3 带委托的泛型方法        136 
5.6.4 泛型方法规范        137 
5.7 小结        138 
第6章 数组        139 
6.1 简单数组        139 
6.1.1 数组的声明        139 
6.1.2 数组的初始化        139 
6.1.3 访问数组元素        140 
6.1.4 使用引用类型        141 
6.2 多维数组        142 
6.3 锯齿数组        143 
6.4 array类        144 
6.4.1 创建数组        145 
6.4.2 复制数组        146 
6.4.3 排序        147 
6.5 数组作为参数        150 
6.5.1 数组协变        151 
6.5.2 arraysegment[t]        151 
6.6 枚举        152 
6.6.1 ienumerator接口        152 
6.6.2 foreach语句        153 
6.6.3 yield语句        153 
6.7 元组        158 
6.8 结构比较        159 
6.9 小结        162 
第7章 运算符和类型强制转换        163 
7.1 运算符        163 
7.1.1 运算符的简化操作        165 
7.1.2 运算符的优先级        169 
7.2 类型的安全性        169 
7.2.1 类型转换        170 
7.2.2 装箱和拆箱        173 
7.3 比较对象的相等性        174 
7.3.1 比较引用类型的相等性        174 
7.3.2 比较值类型的相等性        175 
7.4 运算符重载        176 
7.4.1 运算符的工作方式        177 
7.4.2 运算符重载的示例： 
vector结构        178 
7.5 用户定义的类型强制转换        185 
7.5.1 实现用户定义的类型 
强制转换        186 
7.5.2 多重类型强制转换        192 
7.6 小结        195 
第8章 委托、lambda表达式 
和事件        197 
8.1 委托        197 
8.1.1 声明委托        198 
8.1.2 使用委托        199 
8.1.3 简单的委托示例        202 
8.1.4 action[t]和func[t] 
委托        204 
8.1.5 bubblesorter示例        204 
8.1.6 多播委托        207 
8.1.7 匿名方法        210 
8.2 lambda表达式        211 
8.2.1 参数        212 
8.2.2 多行代码        212 
8.2.3 lambda表达式外部的 
变量        213 
8.3 事件        214 
8.3.1 事件发布程序        214 
8.3.2 事件侦听器        216 
8.3.3 弱事件        217 
8.4 小结        220 
第9章 字符串和正则表达式        221 
9.1 system.string类        221 
9.1.1 创建字符串        222 
9.1.2 stringbuilder成员        225 
9.1.3 格式字符串        226 
9.2 正则表达式        231 
9.2.1 正则表达式概述        232 
9.2.2 regularexpressions 
playaround示例        233 
9.2.3 显示结果        235 
9.2.4 匹配、组合和捕获        237 
9.3 小结        238 
第10章 集合        239 
10.1 集合接口和类型        239 
10.2 列表        240 
10.2.1 创建列表        241 
10.2.2 只读集合        250 
10.3 队列        250 
10.4 栈        254 
10.5 链表        256 
10.6 有序列表        261 
10.7 字典        262 
10.7.1 键的类型        263 
10.7.2 字典示例        264 
10.7.3 lookup类        268 
10.7.4 有序字典        269 
10.8 集        269 
10.9 可观察的集合        271 
10.10 位数组        272 
10.10.1 bitarray类        273 
10.10.2 bitvector32结构        275 
10.11 并发集合        277 
10.12 性能        279 
10.13 小结        281 
第11章 linq        283 
11.1 linq概述        283 
11.1.1 列表和实体        283 
11.1.2 linq查询        287 
11.1.3 扩展方法        288 
11.1.4 推迟查询的执行        289 
11.2 标准的查询操作符        291 
11.2.1 筛选        293 
11.2.2 用索引筛选        293 
11.2.3 类型筛选        294 
11.2.4 复合的from子句        294 
11.2.5 排序        295 
11.2.6 分组        296 
11.2.7 对嵌套的对象分组        297 
11.2.8 连接        298 
11.2.9 集合操作        300 
11.2.10 合并        301 
11.2.11 分区        302 
11.2.12 聚合操作符        303 
11.2.13 转换        304 
11.2.14 生成操作符        305 
11.3 并行linq        306 
11.3.1 并行查询        306 
11.3.2 分区器        307 
11.3.3 取消        307 
11.4 表达式树        308 
11.5 linq提供程序        311 
11.6 小结        311 
第12章 动态语言扩展        313 
12.1 dlr        313 
12.2 dynamic类型        313 
12.3 包含dlr scriptruntime        318 
12.4 dynamicobject和 
expandoobject        321 
12.4.1 dynamicobject        321 
12.4.2 expandoobject        323 
12.5 小结        324 
第13章 内存管理和指针        325 
13.1 后台内存管理        325 
13.1.1 值数据类型        325 
13.1.2 引用数据类型        327 
13.1.3 垃圾回收        328 
13.2 释放非托管的资源        330 
13.2.1 析构函数        330 
13.2.2 idisposable接口        331 
13.2.3 实现idisposable接口 
和析构函数        332 
13.3 不安全的代码        334 
13.3.1 用指针直接访问内存        334 
13.3.2 指针示例： 
pointerplayground        343 
13.3.3 使用指针优化性能        347 
13.4 小结        350 
第14章 反射        351 
14.1 自定义特性        351 
14.1.1 编写自定义特性        352 
14.1.2 自定义特性示例： 
whatsnewattributes        355 
14.2 反射        358 
14.2.1 system.type类        358 
14.2.2 typeview示例        360 
14.2.3 assembly类        362 
14.2.4 完成whatsnew 
attributes示例        364 
14.3 小结        368 
第15章 错误和异常        369 
15.1 异常类        369 
15.2 捕获异常        371 
15.2.1 实现多个catch块        373 
15.2.2 在其他代码中捕获异常        376 
15.2.3 system.exception属性        376 
15.2.4 没有处理异常时所发生 
的情况        377 
15.2.5 嵌套的 try块        378 
15.3 用户定义的异常类        379 
15.3.1 捕获用户定义的异常        380 
15.3.2 抛出用户定义的异常        382 
15.3.3 定义用户定义的异常类        385 
15.4 小结        387 
第ⅱ部分 visual studio 
第16章 visual studio 2010        391 
16.1 使用visual studio 2010        391 
16.1.1 创建项目        395 
16.1.2 解决方案和项目的区别        401 
16.1.3 windows应用程序代码        403 
16.1.4 项目的浏览和编码        404 
16.1.5 生成项目        411 
16.1.6 调试代码        415 
16.2 重构工具        418 
16.3 面向多个版本的 
.net framework        420 
16.4 wpf、wcf、wf等        421 
16.4.1 在visual studio 2010 
中构建wpf应用程序        421 
16.4.2 在visual studio 2010 
中构建wf应用程序        423 
16.5 小结        424 
第17章 部署        425 
17.1 部署的规划        425 
17.1.1 部署选项        426 
17.1.2 部署要求        426 
17.1.3 部署.net运行库        427 
17.2 简单的部署选项        427 
17.2.1 xcopy部署        428 
17.2.2 xcopy和web 
应用程序        428 
17.2.3 发布web站点        429 
17.3 visual studio 2010安装 
和部署项目        429 
17.3.1 windows installer        430 
17.3.2 创建安装程序        430 
17.4 clickonce        437 
17.4.1 clickonce操作        437 
17.4.2 发布clickonce 
应用程序        438 
17.4.3 clickonce设置        438 
17.4.4 clickonce文件的 
应用程序缓存        439 
17.4.5 应用程序的安全性        439 
17.5 visual studio 2010 
高级选项        440 
17.5.1 文件系统编辑器        440 
17.5.2 注册表编辑器        440 
17.5.3 文件类型编辑器        440 
17.5.4 用户界面编辑器        441 
17.5.5 自定义动作编辑器        442 
17.5.6 launch conditions 
编辑器        443 
17.6 小结        444 
第ⅲ部分 基 础 
第18章 程序集        447 
18.1 程序集的含义        447 
18.1.1 程序集的功能        448 
18.1.2 程序集的结构        448 
18.1.3 程序集清单        449 
18.1.4 名称空间、程序集 
和组件        449 
18.1.5 私有程序集和共享 
程序集        449 
18.1.6 附属程序集        450 
18.1.7 查看程序集        450 
18.2 创建程序集        451 
18.2.1 创建模块和程序集        451 
18.2.2 程序集的特性        452 
18.2.3 动态加载和创建 
程序集        454 
18.3 应用程序域        457 
18.4 共享程序集        461 
18.4.1 强名        462 
18.4.2 使用强名获得完整性        462 
18.4.3 全局程序集缓存        463 
18.4.4 创建共享程序集        463 
18.4.5 创建强名        464 
18.4.6 安装共享程序集        465 
18.4.7 使用共享程序集        465 
18.4.8 程序集的延迟签名        466 
18.4.9 引用        467 
18.4.10 本机映像生成器        468 
18.5 配置.net应用程序        469 
18.5.1 配置类别        469 
18.5.2 绑定程序集        470 
18.6 版本问题        471 
18.6.1 版本号        472 
18.6.2 通过编程方式获取版本        472 
18.6.3 绑定到程序集版本        473 
18.6.4 发行者策略文件        474 
18.6.5 运行库的版本        475 
18.7 小结        476 
第19章 检测        477 
19.1 代码协定        477 
19.1.1 前提条件        479 
19.1.2 后置条件        480 
19.1.3 常量        481 
19.1.4 接口的协定        481 
19.2 跟踪        483 
19.2.1 跟踪源        484 
19.2.2 跟踪开关        485 
19.2.3 跟踪侦听器        486 
19.2.4 筛选器        488 
19.2.5 相关性        489 
19.3 事件日志        492 
19.3.1 事件日志体系结构        493 
19.3.2 事件日志类        494 
19.3.3 创建事件源        494 
19.3.4 写入事件日志        495 
19.3.5 资源文件        496 
19.4 性能监控        500 
19.4.1 性能监控类        500 
19.4.2 性能计数器生成器        500 
19.4.3 添加performance 
counter组件        503 
19.4.4 perfmon.exe        505 
19.5 小结        506 
第20章 线程、任务和同步        507 
20.1 概述        507 
20.2 异步委托        508 
20.2.1 投票        508 
20.2.2 等待句柄        509 
20.2.3 异步回调        510 
20.3 thread类        512 
20.3.1 给线程传递数据        513 
20.3.2 后台线程        514 
20.3.3 线程的优先级        515 
20.3.4 控制线程        515 
20.4 线程池        516 
20.5 任务        517 
20.5.1 启动任务        517 
20.5.2 连续的任务        518 
20.5.3 任务层次结构        519 
20.5.4 任务的结果        520 
20.6 parallel类        521 
20.6.1 用parallel.for() 
方法循环        521 
20.6.2 使用parallel.foreach() 
方法循环        523 
20.6.3 通过parallel.invoke() 
方法调用多个方法        524 
20.7 取消架构        524 
20.7.1 parallel.for()方法 
的取消        524 
20.7.2 任务的取消        526 
20.8 线程问题        527 
20.8.1 争用条件        527 
20.8.2 死锁        530 
20.9 同步        532 
20.9.1 lock语句和线程安全        532 
20.9.2 interlocked类        538 
20.9.3 monitor类        539 
20.9.4 spinlock结构        540 
20.9.5 waithandle基类        540 
20.9.6 mutex类        541 
20.9.7 semaphore类        542 
20.9.8 events类        544 
20.9.9 barrier类        547 
20.9.10 readerwriterlockslim 
类        549 
20.10 timer类        552 
20.11 基于事件的异步模式        554 
20.11.1 backgroundworker 
类        554 
20.11.2 启用取消功能        557 
20.11.3 启用进度功能        558 
20.11.4 创建基于事件的异步 
组件        559 
20.12 小结        563 
第21章 安全性        565 
21.1 身份验证和授权        565 
21.1.1 标识和principal        565 
21.1.2 角色        567 
21.1.3 声明基于角色的安全性        567 
21.1.4 客户端应用程序服务        568 
21.2 加密        573 
21.2.1 签名        575 
21.2.2 交换密钥和安全传输        576 
21.3 资源的访问控制        579 
21.4 代码访问安全性        582 
21.4.1 第2级安全透明性        582 
21.4.2 权限        583 
21.5 使用证书发布代码        588 
21.6 小结        588 
第22章 本地化        591 
22.1 system.globalization 
名称空间        591 
22.1.1 unicode问题        592 
22.1.2 区域性和区域        592 
22.1.3 使用区域性        596 
22.1.4 排序        600 
22.2 资源        602 
22.2.1 创建资源文件        602 
22.2.2 资源文件生成器        602 
22.2.3 resourcewriter        603 
22.2.4 使用资源文件        604 
22.2.5 system.resources 
名称空间        607 
22.3 使用visual studio的 
windows窗体本地化        607 
22.3.1 通过编程方式修改 
区域性        612 
22.3.2 使用自定义资源文件        613 
22.3.3 资源的自动回退        614 
22.3.4 外包翻译        615 
22.4 用asp.net本地化        615 
22.5 用wpf本地化        617 
22.5.1 用于wpf的.net资源        618 
22.5.2 xaml资源字典        619 
22.6 自定义资源读取器        622 
22.6.1 创建databaseresource 
reader类        623 
22.6.2 创建databaseresource 
set类        625 
22.6.3 创建databaseresource 
manager类        625 
22.6.4 databaseresourcereader 
的客户端应用程序        626 
22.7 创建自定义区域性        626 
22.8 小结        628 
第23章 system.transactions        629 
23.1 概述        629 
23.1.1 事务处理阶段        630 
23.1.2 acid属性        630 
23.2 数据库和实体类        631 
23.3 传统的事务        633 
23.3.1 ado.net事务        633 
23.3.2 system.enterprise 
services        634 
23.4 system.transactions        635 
23.4.1 可提交的事务        636 
23.4.2 事务处理的升级        638 
23.4.3 依赖事务        640 
23.4.4 环境事务        642 
23.5 隔离级别        649 
23.6 自定义资源管理器        650 
23.7 windows 7和windows 
server 2008的事务        656 
23.8 小结        660 
第24章 网络        661 
24.1 webclient类        661 
24.1.1 下载文件        662 
24.1.2 基本的webclient示例        662 
24.1.3 上传文件        663 
24.2 webrequest类和 
webresponse类        664 
24.2.1 身份验证        666 
24.2.2 使用代理        666 
24.2.3 异步页面请求        666 
24.3 把输出结果显示为 
html页面        667 
24.3.1 从应用程序中进行 
简单的web浏览        667 
24.3.2 启动internet explorer 
实例        669 
24.3.3 给应用程序提供更多 
的ie类型特性        669 
24.3.4 使用webbrowser控件 
打印        674 
24.3.5 显示请求页面的代码        674 
24.3.6 webrequest类 
和webresponse类的 
层次结构        676 
24.4 实用工具类        676 
24.4.1 uri        676 
24.4.2 ip地址和dns名称        677 
24.5 较低层的协议        679 
24.5.1 使用smtpclient        680 
24.5.2 使用tcp类        682 
24.5.3 tcpsend和tcpreceive 
示例        682 
24.5.4 tcp和udp        684 
24.5.5 udp类        684 
24.5.6 socket类        685 
24.6 小结        689 
第25章 windows服务        691 
25.1 windows服务        691 
25.2 windows服务的体系结构        692 
25.2.1 服务程序        692 
25.2.2 服务控制程序        694 
25.2.3 服务配置程序        694 
25.2.4 windows服务的类        694 
25.3 创建windows服务程序        694 
25.3.1 创建服务的核心功能        695 
25.3.2 quoteclient示例        698 
25.3.3 windows服务程序        699 
25.3.4 线程和服务        703 
25.3.5 服务的安装        704 
25.3.6 安装程序        704 
25.4 服务的监视和控制        708 
25.4.1 mmc管理单元        708 
25.4.2 net.exe实用程序        709 
25.4.3 sc.exe实用程序        710 
25.4.4 visual studio server 
explorer        710 
25.4.5 编写自定义 
servicecontroller类        710 
25.5 故障排除和事件日志        718 
25.6 小结        719 
第26章 互操作性        721 
26.1 .net和com        721 
26.1.1 元数据        722 
26.1.2 释放内存        722 
26.1.3 接口        722 
26.1.4 方法的绑定        724 
26.1.5 数据类型        724 
26.1.6 注册        724 
26.1.7 线程        725 
26.1.8 错误处理        726 
26.1.9 事件        727 
26.2 编组        727 
26.3 从.net客户端中使用 
com组件        728 
26.3.1 创建com组件        728 
26.3.2 创建rcw        734 
26.3.3 使用rcw        735 
26.3.4 使用com服务器和 
动态语言扩展        736 
26.3.5 线程问题        737 
26.3.6 添加连接点        737 
26.4 从com客户端中使用 
.net组件        739 
26.4.1 ccm        740 
26.4.2 创建.net组件        740 
26.4.3 创建类型库        741 
26.4.4 com互操作特性        743 
26.4.5 com注册        745 
26.4.6 创建com客户端 
应用程序        746 
26.4.7 添加连接点        747 
26.4.8 用sink对象创建 
客户端        748 
26.5 平台调用        750 
26.6 小结        754 
第27章 核心xaml        755 
27.1 概述        755 
27.1.1 元素映射到.net 
对象上        756 
27.1.2 使用自定义.net类        757 
27.1.3 把特性用作属性        759 
27.1.4 把特性用作元素        759 
27.1.5 基本的.net类型        760 
27.1.6 集合        760 
27.1.7 构造函数        761 
27.2 依赖属性        761 
27.2.1 创建依赖类型        762 
27.2.2 强制值回调        763 
27.2.3 值变更回调和事件        764 
27.2.4 事件的冒泡和隧道        764 
27.3 附加属性        767 
27.4 标记扩展        770 
27.5 创建自定义标记扩展        770 
27.6 xaml定义的标记扩展        772 
27.7 读写xaml        772 
27.8 小结        773 
第28章 managed extensibility 
framework        775 
28.1 mef的体系结构        775 
28.2 协定        782 
28.3 导出        783 
28.3.1 导出属性和方法        787 
28.3.2 导出元数据        789 
28.4 导入        791 
28.5 容器和出口提供程序        794 
28.6 类别        797 
28.7 小结        798 
第29章 文件和注册表操作        799 
29.1 管理文件系统        799 
29.1.1 表示文件和文件夹 
的.net类        800 
29.1.2 path类        803 
29.1.3 fileproperties示例        803 
29.2 移动、复制和删除文件        808 
29.2.1 filepropertiesandmovement 
示例        808 
29.2.2 filepropertiesandmovement 
示例的代码        809 
29.3 读写文件        812 
29.3.1 读取文件        812 
29.3.2 写入文件        814 
29.3.3 流        815 
29.3.4 缓存的流        816 
29.3.5 使用filestream类读写 
二进制文件        816 
29.3.6 读写文本文件        821 
29.4 映射内存的文件        827 
29.5 读取驱动器信息        829 
29.6 文件的安全性        831 
29.6.1 从文件中读取acl        831 
29.6.2 从目录中读取acl        832 
29.6.3 添加和删除文件中 
的acl项        833 
29.7 读写注册表        835 
29.7.1 注册表        835 
29.7.2 .net注册表类        837 
29.8 读写独立存储器        839 
29.9 小结        844 
第ⅳ部分 数 据 
第30章 核心ado.net        847 
30.1 ado.net概述        847 
30.1.1 名称空间        848 
30.1.2 共享类        848 
30.1.3 数据库专用的类        849 
30.2 使用数据库连接        850 
30.2.1 管理连接字符串        851 
30.2.2 高效地使用连接        852 
30.2.3 事务        854 
30.3 命令        855 
30.3.1 执行命令        856 
30.3.2 调用存储过程        860 
30.4 快速数据访问： 
数据读取器        862 
30.5 管理数据和关系： 
dataset类        865 
30.5.1 数据表        866 
30.5.2 数据列        866 
30.5.3 数据关系        871 
30.5.4 数据约束        872 
30.6 xml架构：用xsd 
生成代码        875 
30.7 填充dataset类        881 
30.7.1 用数据适配器填充 
dataset        882 
30.7.2 从xml中填充 
dataset类        883 
30.8 持久化dataset类的修改        883 
30.8.1 通过数据适配器进行 
更新        883 
30.8.2 写入xml输出结果        886 
30.9 使用ado.net        887 
30.9.1 分层开发        887 
30.9.2 生成sql server的键        888 
30.9.3 命名约定        891 
30.10 小结        892 
第31章 ado.net entity 
framework        893 
31.1 ado.net entity 
framework概述        893 
31.2 entity framework映射        894 
31.2.1 逻辑层        895 
31.2.2 概念层        897 
31.2.3 映射层        898 
31.3 entity client        899 
31.3.1 连接字符串        900 
31.3.2 entity sql        900 
31.4 实体        901 
31.5 对象上下文        904 
31.6 关系        906 
31.6.1 一个层次结构一个表        907 
31.6.2 一种类型一个表        908 
31.6.3 懒惰加载、延迟加载 
和预先加载        909 
31.7 对象查询        910 
31.8 更新        913 
31.8.1 对象跟踪        913 
31.8.2 改变信息        914 
31.8.3 附加和分离实体        916 
31.8.4 存储实体的变化        916 
31.9 linq to entities        917 
31.10 小结        918 
第32章 数据服务        919 
32.1 概述        919 
32.2 包含clr对象的自定义 
宿主        920 
32.2.1 clr对象        920 
32.2.2 数据模型        922 
32.2.3 数据服务        923 
32.2.4 驻留服务        923 
32.2.5 其他服务操作        924 
32.3 http客户端应用程序        925 
32.4 使用wcf数据服务和 
ado.net entity 
framework        929 
32.4.1 asp.net宿主和edm        929 
32.4.2 使用system.data 
.service.client的.net 
应用程序        931 
32.5 小结        938 
第33章 处理xml        939 
33.1 .net支持的xml标准        940 
33.2 system.xml名称空间        940 
33.3 使用system.xml类        941 
33.4 读写流格式的xml        942 
33.4.1 使用 xmlreader类        942 
33.4.2 使用xmlreader类进行 
验证        946 
33.4.3 使用xmlwriter类        947 
33.5 在.net中使用dom        949 
33.6 使用xpathnavigator类        954 
33.6.1 system.xml.xpath 
名称空间        954 
33.6.2 system.xml.xsl 
名称空间        959 
33.6.3 调试xslt        963 
33.7 xml和ado.net        965 
33.7.1 将ado.net数据 
转换为xml文档        965 
33.7.2 把xml文档转换为 
ado.net数据        970 
33.8 在xml中序列化对象        972 
33.9 linq to xml和.net        982 
33.10 使用不同的xml对象        982 
33.10.1 xdocument对象        982 
33.10.2 xelement对象        983 
33.10.3 xnamespace对象        984 
33.10.4 xcomment对象        986 
33.10.5 xattribute对象        986 
33.11 使用linq查询xml 
文档        987 
33.11.1 查询静态的xml 
文档        987 
33.11.2 查询动态的xml 
文档        989 
33.12 xml文档的更多查询 
技术        990 
33.12.1 读取xml文档        990 
33.12.2 写入xml文档        992 
33.13 小结        993 
第34章 .net编程和sql 
server        995 
34.1 .net运行库的宿主        995 
34.2 microsoft.sqlserver.server        997 
34.3 用户定义的类型        998 
34.3.1 创建udt        998 
34.3.2 通过sql使用udt        1003 
34.3.3 从客户端代码中使用 
udt        1004 
34.4 用户定义的聚合函数        1005 
34.4.1 创建用户定义的 
聚合函数        1006 
34.4.2 使用用户定义的 
聚合函数        1007 
34.5 存储过程        1007 
34.5.1 创建存储过程        1008 
34.5.2 使用存储过程        1009 
34.6 用户定义的函数        1010 
34.6.1 创建用户定义的函数        1010 
34.6.2 使用用户定义的函数        1010 
34.7 触发器        1011 
34.7.1 创建触发器        1011 
34.7.2 使用触发器        1012 
34.8 xml数据类型        1013 
34.8.1 包含xml数据的表        1013 
34.8.2 读取xml值        1014 
34.8.3 数据的查询        1017 
34.8.4 xml数据修改语言 
(xml dml)        1019 
34.8.5 xml索引        1020 
34.8.6 强类型化的xml        1021 
34.9 小结        1022 
第ⅴ部分 显 示 
第35章 核心wpf        1025 
35.1 概述        1025 
35.1.1 名称空间        1025 
35.1.2 类层次结构        1027 
35.2 形状        1028 
35.3 几何图形        1030 
35.4 变换        1032 
35.5 画笔        1033 
35.5.1 solidcolorbrush        1033 
35.5.2 lineargradientbrush        1034 
35.5.3 radialgradientbrush        1034 
35.5.4 drawingbrush        1035 
35.5.5 imagebrush        1035 
35.5.6 visualbrush        1036 
35.6 控件        1037 
35.6.1 简单控件        1037 
35.6.2 内容控件        1038 
35.6.3 带标题的内容控件        1039 
35.6.4 项控件        1040 
35.6.5 带标题的项控件        1041 
35.6.6 修饰        1041 
35.7 布局        1042 
35.7.1 stackpanel        1042 
35.7.2 wrappanel        1043 
35.7.3 canvas        1044 
35.7.4 dockpanel        1044 
35.7.5 grid        1045 
35.8 样式和资源        1046 
35.8.1 样式        1046 
35.8.2 资源        1048 
35.8.3 系统资源        1049 
35.8.4 从代码中访问资源        1050 
35.8.5 动态资源        1050 
35.8.6 资源字典        1051 
35.9 触发器        1052 
35.9.1 属性触发器        1053 
35.9.2 多触发器        1054 
35.9.3 数据触发器        1055 
35.10 模板        1056 
35.10.1 控件模板        1057 
35.10.2 数据模板        1060 
35.10.3 样式化列表框        1061 
35.10.4 itemtemplate        1062 
35.10.5 列表框元素的控件 
模板        1064 
35.11 动画        1066 
35.11.1 时间轴        1066 
35.11.2 非线性动画        1069 
35.11.3 事件触发器        1069 
35.11.4 关键帧动画        1072 
35.12 可见状态管理器        1073 
35.13 3-d        1076 
35.13.1 模型        1077 
35.13.2 照相机        1079 
35.13.3 光线        1079 
35.13.4 旋转        1079 
35.14 小结        1080 
第36章 用wpf编写业务 
应用程序        1083 
36.1 数据绑定        1083 
36.1.1 booksdemo应用程序        1084 
36.1.2 用xaml绑定        1086 
36.1.3 简单对象的绑定        1088 
36.1.4 更改通知        1090 
36.1.5 对象数据提供程序        1092 
36.1.6 列表绑定        1094 
36.1.7 主从绑定        1096 
36.1.8 多绑定        1097 
36.1.9 优先绑定        1099 
36.1.10 值的转换        1100 
36.1.11 动态添加列表项        1102 
36.1.12 数据模板选择器        1103 
36.1.13 绑定到xml上        1105 
36.1.14 绑定的验证        1107 
36.2 commanding        1111 
36.2.1 定义命令        1112 
36.2.2 定义命令源        1113 
36.2.3 命令绑定        1113 
36.3 treeview        1114 
36.4 datagrid        1118 
36.4.1 自定义列        1120 
36.4.2 行的细节        1121 
36.4.3 用datagrid进行分组        1121 
36.5 小结        1124 
第37章 用wpf创建文档        1125 
37.1 文本元素        1125 
37.1.1 字体        1125 
37.1.2 texteffect        1127 
37.1.3 内联        1128 
37.1.4 块        1130 
37.1.5 列表        1132 
37.1.6 表        1132 
37.1.7 块的锚定        1134 
37.2 流文档        1135 
37.3 固定文档        1136 
37.4 xps文档        1140 
37.5 打印        1141 
37.5.1 用printdialog打印        1142 
37.5.2 打印可见元素        1142 
37.6 小结        1144 
第38章 silverlight        1145 
38.1 wpf和silverlight的比较        1145 
38.2 创建silverlight项目        1146 
38.3 导航        1148 
38.4 网络        1152 
38.4.1 创建ado.net entity 
data model        1153 
38.4.2 为silverlight客户端 
创建wcf服务        1153 
38.4.3 调用wcf服务        1155 
38.4.4 使用wcf数据服务        1158 
38.4.5 使用system.net访问 
服务        1160 
38.5 浏览器集成        1162 
38.5.1 调用javascript        1162 
38.5.2 javascript调用 
silverlight        1163 
38.6 在浏览器外运行的 
silverlight应用程序        1164 
38.7 小结        1167 
第39章 windows窗体        1169 
39.1 创建windows窗体 
应用程序        1169 
39.2 control类        1175 
39.2.1 大小和位置        1175 
39.2.2 外观        1176 
39.2.3 用户交互操作        1176 
39.2.4 windows功能        1177 
39.2.5 其他功能        1177 
39.3 标准控件和组件        1178 
39.3.1 button控件        1178 
39.3.2 checkbox控件        1178 
39.3.3 radiobutton控件        1179 
39.3.4 combobox控件、 
listbox控件和 
checkedlistbox控件        1179 
39.3.5 datagridview控件        1180 
39.3.6 datetimepicker控件        1188 
39.3.7 errorprovider组件        1188 
39.3.8 imagelist组件        1189 
39.3.9 label控件        1189 
39.3.10 listview控件        1189 
39.3.11 picturebox控件        1189 
39.3.12 progressbar控件        1190 
39.3.13 textbox控件、 
richtextbox控件与 
maskedtextbox控件        1190 
39.3.14 panel控件        1191 
39.3.15 flowlayoutpanel和 
tablelayoutpanel 
控件        1191 
39.3.16 splitcontainer控件        1192 
39.3.17 tabcontrol控件和 
tabpages控件        1192 
39.3.18 toolstrip控件        1193 
39.3.19 menustrip控件        1194 
39.3.20 contextmenustrip 
控件        1194 
39.3.21 toolstripmenuitem 
控件        1194 
39.3.22 toolstripmanager类        1194 
39.3.23 toolstripcontainer 
控件        1195 
39.4 窗体        1195 
39.4.1 form类        1195 
39.4.2 多文档界面        1199 
39.4.3 创建自己的用户控件        1200 
39.5 小结        1200 
第40章 核心asp.net        1201 
40.1 asp.net概述        1201 
40.1.1 asp.net文件的 
处理方式        1202 
40.1.2 web站点和web 
应用程序        1202 
40.1.3 asp.net中的状态 
管理        1203 
40.2 asp.net web窗体        1203 
40.2.1 asp.net代码模型        1207 
40.2.2 asp.net服务器控件        1208 
40.3 ado.net和数据绑定 1222 
40.3.1 更新事件登记 
应用程序        1222 
40.3.2 数据绑定的更多内容        1229 
40.4 应用程序配置        1234 
40.5 小结        1236 
第41章 asp.net的功能        1237 
41.1 用户控件和自定义控件        1238 
41.1.1 用户控件        1238 
41.1.2 pcsdemosite中的 
用户控件        1242 
41.1.3 自定义控件        1243 
41.2 母版页        1247 
41.2.1 在web页面中 
访问母版页        1248 
41.2.2 嵌套的母版页        1248 
41.2.3 pcsdemosite中 
的母版页        1249 
41.3 站点导航        1250 
41.3.1 添加站点地图文件        1251 
41.3.2 pcsdemosite中 
的导航        1252 
41.4 安全性        1253 
41.4.1 使用security setup 
添加forms身份验证 
功能        1254 
41.4.2 实现登录系统        1255 
41.4.3 web 登录服务器控件        1255 
41.4.4 保护目录        1256 
41.4.5 pcsdemosite中的 
安全性        1257 
41.5 主题        1259 
41.5.1 把主题应用于页面        1259 
41.5.2 定义主题        1260 
41.5.3 pcsdemosite中的 
主题        1260 
41.6 web部件        1263 
41.6.1 web部件应用程序 
组件        1263 
41.6.2 web部件示例        1264 
41.7 asp.net ajax        1270 
41.8 ajax的概念        1271 
41.9 asp.net ajax        1273 
41.9.1 核心功能        1273 
41.9.2 asp.net ajax 
control toolkit        1275 
41.10 asp.net ajax网站 
示例        1276 
41.11 支持asp.net ajax的 
网站配置        1278 
41.12 添加asp.net ajax 
功能        1279 
41.12.1 scriptmanager控件        1280 
41.12.2 使用updatepanel 
控件        1281 
41.12.3 使用updateprogress        1283 
41.12.4 使用扩展控件        1284 
41.13 使用ajax库        1286 
41.13.1 给web页面添加 
javascript        1286 
41.13.2 全局实用程序函数        1287 
41.13.3 使用ajax库 
javascript oop 
扩展        1287 
41.13.4 pagerequestmanager 
对象和application 
对象        1289 
41.13.5 javascript的调试        1292 
41.13.6 异步调用web方法        1293 
41.13.7 asp.net应用程序 
服务        1294 
41.14 小结        1294 
第42章 asp.net动态数据 
和mvc        1297 
42.1 路由        1298 
42.1.1 查询字符串参数        1298 
42.1.2 定义路由        1300 
42.1.3 使用路由参数        1303 
42.2 动态数据        1305 
42.2.1 创建动态数据网站        1305 
42.2.2 定制动态数据网站        1310 
42.2.3 进一步开发        1314 
42.3 mvc        1314 
42.3.1 mvc的含义        1314 
42.3.2 asp.net mvc的 
含义        1315 
42.3.3 简单的asp.net mvc 
应用程序        1315 
42.3.4 定制asp.net mvc 
应用程序        1321 
42.3.5 进一步开发        1329 
42.4 小结        1330 
第ⅵ部分 通 信 
第43章 wcf        1333 
43.1 wcf概述        1333 
43.1.1 soap        1335 
43.1.2 wsdl        1335 
43.1.3 rest        1335 
43.1.4 json        1336 
43.2 简单的服务和客户端        1336 
43.2.1 服务协定        1337 
43.2.2 服务的实现        1338 
43.2.3 wcf服务宿主和 
wcf测试客户端        1338 
43.2.4 自定义服务宿主        1340 
43.2.5 wcf客户端        1342 
43.2.6 诊断        1343 
43.3 协定        1345 
43.3.1 数据协定        1345 
43.3.2 版本问题        1346 
43.3.3 服务协定        1346 
43.3.4 消息协定        1347 
43.4 服务的实现        1348 
43.4.1 以编程方式创建 
客户端        1351 
43.4.2 错误处理        1352 
43.5 绑定        1353 
43.6 宿主        1356 
43.6.1 自定义宿主        1356 
43.6.2 was宿主        1357 
43.6.3 预配置的宿主类        1357 
43.7 客户端        1358 
43.8 双工通信        1360 
43.9 小结        1362 
第44章 windows wf 4        1363 
44.1 hello world示例        1363 
44.2 活动        1365 
44.2.1 if活动        1366 
44.2.2 invokemethod活动        1367 
44.2.3 parallel活动        1367 
44.2.4 delay活动        1368 
44.2.5 pick活动        1368 
44.3 自定义活动        1369 
44.3.1 活动的验证        1370 
44.3.2 设计器        1371 
44.3.3 自定义复合活动        1373 
44.4 工作流        1375 
44.4.1 实参和变量        1376 
44.4.2 workflowapplication        1377 
44.4.3 workflowservicehost        1381 
44.4.4 驻留设计器        1386 
44.5 小结        1391 
第45章 对等网络        1393 
45.1 p2p网络概述        1393 
45.1.1 客户端-服务器体系 
结构        1393 
45.1.2 p2p体系结构        1394 
45.1.3 p2p体系结构的挑战        1395 
45.1.4 p2p术语        1396 
45.1.5 p2p解决方案        1396 
45.2 microsoft windows 
peer-to-peer networking        1396 
45.2.1 pnrp        1396 
45.2.2 people near me        1399 
45.3 构建p2p应用程序        1400 
45.3.1 system.net.peertopeer        1400 
45.3.2 system.net.peertopeer 
.collaboration        1405 
45.4 小结        1408 
第46章 消息队列        1409 
46.1 概述        1409 
46.1.1 使用消息队列的场合        1410 
46.1.2 消息队列功能        1411 
46.2 message queuing产品        1412 
46.3 消息队列体系结构        1412 
46.3.1 消息        1413 
46.3.2 消息队列        1413 
46.4 message queuing 
管理工具        1414 
46.4.1 创建消息队列        1414 
46.4.2 消息队列属性        1415 
46.5 消息队列的编程实现        1415 
46.5.1 创建消息队列        1415 
46.5.2 查找队列        1416 
46.5.3 打开已知队列        1417 
46.5.4 发送消息        1418 
46.5.5 接收消息        1421 
46.6 课程订单应用程序        1423 
46.6.1 课程订单类库        1423 
46.6.2 课程订单消息 
发送程序        1424 
46.6.3 发送优先级和可恢复 
的消息        1425 
46.6.4 课程订单消息接收 
程序        1426 
46.7 接收结果        1429 
46.7.1 确认队列        1430 
46.7.2 响应队列        1430 
46.8 事务队列        1431 
46.9 消息队列和wcf        1432 
46.9.1 带数据协定的实体类        1432 
46.9.2 wcf服务协定        1433 
46.9.3 wcf消息接收 
应用程序        1434 
46.9.4 wcf消息发送 
应用程序        1437 
46.10 消息队列的安装        1438 
46.11 小结        1438 
第47章 syndication        1441 
47.1 system.servicemodel. 
syndication名称空间 
概述        1441 
47.2 读取联合源的示例        1442 
47.3 联合源的示例        1444 
47.4 小结        1449 
第ⅶ部分 附 录 
附录a        1453 
***以下内容见随书附赠光盘*** 
第48章 使用gdi+绘图        e1 
48.1 理解绘图规则        e1 
48.1.1 gdi和gdi+        e2 
48.1.2 绘制图形        e3 
48.1.3 使用onpaint()方法 
绘制图形        e6 
48.1.4 使用剪切区域        e7 
48.2 测量坐标和区域        e9 
48.2.1 point和pointf结构        e9 
48.2.2 size和sizef结构        e10 
48.2.3 rectangle和rectanglef 
结构        e11 
48.2.4 region        e12 
48.3 调试须知        e13 
48.4 绘制可滚动的窗口        e14 
48.5 世界、页面和设备坐标        e18 
48.6 颜色        e19 
48.6.1 rgb值        e19 
48.6.2 命名颜色        e20 
48.6.3 图形显示模式和安全 
的调色板        e20 
48.6.4 安全调色板        e21 
48.7 画笔和钢笔        e21 
48.7.1 画笔        e22 
48.7.2 钢笔        e23 
48.8 绘制图形和线条        e23 
48.9 显示图像        e25 
48.10 处理图像时的问题        e27 
48.11 绘制文本        e28 
48.12 简单的文本示例        e29 
48.13 字体和字体系列        e30 
48.14 示例：枚举字体系列        e31 
48.15 编辑文本文档： 
capseditor示例        e33 
48.15.1 invalidate()方法        e37 
48.15.2 计算项的大小和文档 
的大小        e38 
48.15.3 onpaint()方法        e39 
48.15.4 坐标转换        e41 
48.15.5 响应用户的输入        e42 
48.16 打印        e45 
48.17 小结        e50 
第49章 vsto        e51 
49.1 vsto概述        e51 
49.1.1 项目类型        e52 
49.1.2 项目功能        e54 
49.2 vsto项目基础        e55 
49.2.1 office对象模型        e55 
49.2.2 vsto名称空间        e55 
49.2.3 宿主项和宿主控件        e56 
49.2.4 基本的vsto项目 
结构        e57 
49.2.5 globals类        e60 
49.2.6 事件处理        e60 
49.3 构建vsto解决方案        e61 
49.3.1 管理应用程序级插件        e62 
49.3.2 与应用程序和文档 
交互操作        e63 
49.3.3 ui的自定义        e64 
49.4 示例应用程序        e68 
49.5 小结        e78 
第50章 maf        e79 
50.1 maf体系结构        e79 
50.1.1 管道        e80 
50.1.2 发现        e81 
50.1.3 激活和隔离        e82 
50.1.4 协定        e83 
50.1.5 生命周期        e84 
50.1.6 版本问题        e85 
50.2 插件示例        e86 
50.2.1 插件协定        e86 
50.2.2 计算器插件视图        e87 
50.2.3 计算器插件适配器        e88 
50.2.4 计算器插件        e90 
50.2.5 计算器宿主视图        e91 
50.2.6 计算机宿主适配器        e91 
50.2.7 计算器宿主        e93 
50.2.8 其他插件        e97 
50.3 小结        e97 
第51章 enterprise services        e99 
51.1 使用enterprise services        e99 
51.1.1 简史        e100 
51.1.2 使用enterprise services 
的场合        e100 
51.1.3 重要功能        e101 
51.2 创建简单的com+应用 
程序        e103 
51.2.1 servicedcomponent类        e103 
51.2.2 程序集的属性        e103 
51.2.3 创建组件        e104 
51.3 部署        e106 
51.3.1 自动部署        e106 
51.3.2 手工部署        e106 
51.3.3 创建安装软件包        e106 
51.4 组件服务管理器        e107 
51.5 客户端应用程序        e108 
51.6 事务        e109 
51.6.1 事务的特性        e109 
51.6.2 事务的结果        e110 
51.7 示例应用程序        e111 
51.7.1 实体类        e111 
51.7.2 ordercontrol组件        e113 
51.7.3 orderdata组件        e114 
51.7.4 orderlinedata组件        e116 
51.7.5 客户端应用程序        e117 
51.8 集成wcf和enterprise 
services        e118 
51.8.1 wcf服务外观        e118 
51.8.2 客户端应用程序        e122 
51.9 小结        e123 
第52章 目录服务        e125 
52.1 active directory的 
体系结构        e126 
52.1.1 active directory的 
功能        e126 
52.1.2 active directory的 
概念        e126 
52.1.3 active directory数据 
的特征        e129 
52.1.4 指定架构        e130 
52.2 active directory的 
管理工具        e131 
52.2.1 active directory users 
and computers工具        e131 
52.2.2 adsi edit工具        e132 
52.3 active directory编程        e133 
52.3.1 system.directoryservices 
名称空间中的类        e134 
52.3.2 绑定到directory 
services        e134 
52.3.3 获取目录项        e138 
52.3.4 对象集合        e140 
52.3.5 缓存        e141 
52.3.6 创建新对象        e141 
52.3.7 更新目录项        e142 
52.3.8 访问本地adsi对象        e143 
52.3.9 在active directory 
中搜索        e144 
52.4 搜索用户对象        e148 
52.4.1 用户界面        e148 
52.4.2 获取架构命名上下文        e149 
52.4.3 获取user类的属性名        e149 
52.4.4 搜索用户对象        e150 
52.5 账户管理        e152 
52.5.1 显示用户信息        e152 
52.5.2 创建用户        e153 
52.5.3 重置密码        e153 
52.5.4 创建组        e154 
52.5.5 在组中添加用户        e154 
52.5.6 查找用户        e154 
52.6 dsml        e155 
52.6.1 system.directoryservices. 
protocols名称空间中 
的类        e156 
52.6.2 用dsml搜索 
active directory对象        e156 
52.7 小结        e157 
第53章 c#、visual basic、 
c++/cli和f#        e159 
53.1 名称空间        e160 
53.2 定义类型        e161 
53.2.1 引用类型        e161 
53.2.2 值类型        e162 
53.2.3 类型推断        e163 
53.2.4 接口        e164 
53.2.5 枚举        e165 
53.3 方法        e166 
53.3.1 方法的参数和返回 
类型        e166 
53.3.2 参数修饰符        e167 
53.3.3 构造函数        e168 
53.3.4 属性        e170 
53.3.5 对象初始值设定项        e171 
53.3.6 扩展方法        e171 
53.4 静态成员        e172 
53.5 数组        e173 
53.6 控制语句        e174 
53.6.1 if语句        e174 
53.6.2 条件操作符        e174 
53.6.3 switch语句        e175 
53.7 循环        e176 
53.7.1 for语句        e176 
53.7.2 while和do…while 
语句        e177 
53.7.3 foreach语句        e178 
53.8 异常处理        e178 
53.9 继承        e180 
53.9.1 访问修饰符        e180 
53.9.2 关键字        e181 
53.10 资源管理        e183 
53.10.1 idisposable接口的 
实现        e183 
53.10.2 using语句        e184 
53.10.3 重写finalize()方法        e184 
53.11 委托        e186 
53.12 事件        e188 
53.13 泛型        e190 
53.14 linq查询        e192 
53.15 c++/cli混合本地代码 
和托管代码        e192 
53.16 c#的特殊功能        e193 
53.17 小结        e194 
第54章 .net remoting        e195 
54.1 使用.net remoting的 
原因        e195 
54.2 .net remoting术语详解        e197 
54.2.1 客户端通信        e198 
54.2.2 服务器端通信        e199 
54.3 上下文        e199 
54.3.1 激活        e200 
54.3.2 特性和属性        e200 
54.3.3 上下文之间的通信        e201 
54.4 远程对象、客户端和 
服务器        e201 
54.4.1 远程对象        e201 
54.4.2 简单的服务器应用 
程序        e202 
54.4.3 简单的客户端应用 
程序        e203 
54.5 .net remoting体系结构        e204 
54.5.1 信道        e204 
54.5.2 格式化程序        e207 
54.5.3 channelservices和 
remotingconfiguration        e207 
54.5.4 对象的激活        e209 
54.5.5 消息接收器        e212 
54.5.6 在远程方法中传递对象        e213 
54.5.7 生命周期管理        e216 
54.6 配置文件        e218 
54.6.1 知名对象的服务器 
配置        e220 
54.6.2 知名对象的客户端 
配置        e220 
54.6.3 客户端激活的对象的 
服务器配置        e221 
54.6.4 客户端激活的对象的 
客户端配置        e222 
54.6.5 使用配置文件的 
服务器代码        e222 
54.6.6 使用配置文件的 
客户端代码        e223 
54.6.7 客户端信道的延迟 
加载        e223 
54.6.8 调试配置        e224 
54.6.9 配置文件中的生命 
周期服务        e224 
54.6.10 格式化程序提供程序        e225 
54.7 在asp.net中驻留远程 
服务器        e225 
54.8 类、接口和soapsuds        e227 
54.8.1 接口        e227 
54.8.2 soapsuds        e227 
54.9 异步远程调用        e228 
54.9.1 使用委托和 
.net remoting        e228 
54.9.2 oneway特性        e229 
54.10 .net remoting的 
安全性        e229 
54.11 远程处理和事件        e230 
54.11.1 远程对象        e231 
54.11.2 事件参数        e232 
54.11.3 服务器        e233 
54.11.4 服务器配置文件        e233 
54.11.5 事件接收器        e234 
54.11.6 客户端        e234 
54.11.7 客户端配置文件        e235 
54.11.8 运行程序        e236 
54.12 调用上下文        e236 
54.13 小结        e237 
第55章 web服务和asp.net        e239 
55.1 soap        e240 
55.2 wsdl        e241 
55.3 web服务        e242 
55.3.1 提供web服务        e242 
55.3.2 使用web服务        e246 
55.4 扩充事件登记示例        e248 
55.4.1 事件登记 web服务        e249 
55.4.2 事件登记客户端        e253 
55.5 使用soap标题交换 
数据        e256 
55.6 小结        e261 
第56章 linq to sql        e263 
56.1 linq to sql和 
visual studio 2010        e264 
56.1.1 调用products表        e265 
56.1.2 添加linq to sql类        e265 
56.1.3 o/r设计器概述        e266 
56.1.4 创建product对象        e267 
56.2 对象如何映射到linq 
对象上        e269 
56.2.1 datacontext对象        e270 
56.2.2 table[tentity]对象        e274 
56.3 脱离o/r设计器工作        e274 
56.3.1 创建自己的自定义 
对象        e274 
56.3.2 通过自定义对象和 
linq查询        e275 
56.3.3 通过查询限制所调用 
的列        e276 
56.3.4 使用列名        e277 
56.3.5 创建自己的 
datacontext对象        e278 
56.4 自定义对象和o/r 
设计器        e279 
56.5 查询数据库        e280 
56.5.1 使用查询表达式        e280 
56.5.2 查询表达式        e281 
56.5.3 使用表达式筛选        e282 
56.5.4 执行连接        e282 
56.5.5 分组项        e284 
56.6 存储过程        e285 
56.7 小结        e286 
第57章 wpf 3.0        e287 
57.1 hello world示例        e287 
57.2 活动        e288 
57.2.1 ifelseactivity        e289 
57.2.2 parallelactivity        e290 
57.2.3 callexternalmethod 
activity        e291 
57.2.4 delayactivity        e291 
57.2.5 listenactivity        e292 
57.2.6 活动执行模型        e293 
57.3 自定义活动        e293 
57.3.1 活动的验证        e295 
57.3.2 主题和设计器        e296 
57.3.3 activitytoolboxitem 
和图标        e297 
57.3.4 自定义复合活动        e299 
57.4 工作流        e305 
57.4.1 顺序工作流        e305 
57.4.2 状态机工作流        e305 
57.4.3 给工作流传递参数        e307 
57.4.4 从工作流中返回结果        e308 
57.4.5 将参数绑定到活动上        e309 
57.5 工作流运行库        e310 
57.6 工作流服务        e310 
57.6.1 持久性服务        e312 
57.6.2 跟踪服务        e313 
57.6.3 自定义服务        e315 
57.7 与wcf集成        e316 
57.8 驻留工作流        e318 
57.9 工作流设计器        e319 
57.10 从wf 3.x迁移到wf 4        e320 
57.10.1 把活动代码提取到 
服务中        e320 
57.10.2 删除代码活动        e320 
57.10.3 同时运行wf 3.x 
和4        e321 
57.10.4 考虑把状态机迁移到 
流程图上        e321 
57.11 小结        e321