<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_.net | C# | js | jquery | css | div | html - 我的点点滴滴</title><subtitle type="text">摔倒了爬起来就好!</subtitle><id>http://feed.cnblogs.com/blog/u/95084/rss</id><updated>2012-05-09T03:10:34Z</updated><author><name>jyshi</name><uri>http://www.cnblogs.com/jyshis/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jyshis/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/95084/rss"/><entry><id>http://www.cnblogs.com/jyshis/archive/2012/02/13/2349978.html</id><title type="text">密室经典逃脱N部-考验你的智力！据说全球没几人走出去！不要看攻略！【工作之余也来休闲一下】</title><summary type="text">密室经典逃脱N部-考验你的智力！据说全球没几人走出去！不要看攻略！【工作之余也来休闲一下】更多经典逃脱尽在：点击进入更多经典逃脱测试你的反映速度：躲避小红球测试你对鼠标的控制力叫美女起床↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓迷失经典逃脱↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓密室经典逃脱第五部-浅黄色房间密室经典逃脱第六部-白色房间密室经典逃脱第七部-鬼魅房间密室经典逃脱第八部-酒店浴室房间密室经典逃脱第九部-逃出叔叔的房间密室经典逃脱第十一部-车模房间密室经典逃脱第十二部-粉红色房间密室经典逃脱第十三部-公文包房间(实景房间)密室经典逃脱第十五部-宾馆标准房间(旅馆标准房间)密室经典逃脱第十六部-迷你</summary><published>2012-02-13T12:55:00Z</published><updated>2012-02-13T12:55:00Z</updated><author><name>jyshi</name><uri>http://www.cnblogs.com/jyshis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jyshis/archive/2012/02/13/2349978.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jyshis/archive/2012/02/13/2349978.html"/><content type="html">&lt;p&gt;密室经典逃脱N部-考验你的智力！据说全球没几人走出去！不要看攻略！【工作之余也来休闲一下】&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;更多经典逃脱尽在：&lt;a href="http://app.baidu.com/appweb/search?w=%E5%AF%86%E5%AE%A4%E7%BB%8F%E5%85%B8%E9%80%83%E8%84%B1&amp;amp;cid=0&amp;amp;lcid=0&amp;amp;ps=10&amp;amp;pn=1" target="_blank"&gt;点击进入更多经典逃脱&lt;/a&gt;&lt;/p&gt;&lt;p&gt;测试你的反映速度：&lt;a class="app-name" title="躲避小红球" href="http://app.baidu.com/app/enter?appid=197006" target="_blank" data-appid="197006" data-item="title"&gt;躲避小红球&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a class="app-name" title="测试你对鼠标的控制力" href="http://app.baidu.com/app/enter?appid=191698" target="_blank" data-appid="191698" data-item="title"&gt;测试你对鼠标的控制力&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a class="app-name" title="叫美女起床" href="http://app.baidu.com/app/enter?appid=189441" target="_blank" data-appid="189441" data-item="title"&gt;叫美女起床&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;迷失经典逃脱&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&amp;darr;&lt;/p&gt;&lt;p&gt;&lt;a class="app-name" title="密室经典逃脱第五部-浅黄色房间" href="http://app.baidu.com/app/enter?appid=220340" target="_blank" data-appid="220340" data-item="title"&gt;密室经典逃脱第五部-浅黄色房间&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a class="app-name" title="密室经典逃脱第六部-白色房间" href="http://app.baidu.com/app/enter?appid=220343" target="_blank" data-appid="220343" data-item="title"&gt;密室经典逃脱第六部-白色房间&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a class="app-name" title="密室经典逃脱第七部-鬼魅房间" href="http://app.baidu.com/app/enter?appid=220345" target="_blank" data-appid="220345" data-item="title"&gt;密室经典逃脱第七部-鬼魅房间&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a class="app-name" title="密室经典逃脱第八部-酒店浴室房间" href="http://app.baidu.com/app/enter?appid=220352" target="_blank" data-appid="220352" data-item="title"&gt;密室经典逃脱第八部-酒店浴室房间&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a class="app-name" title="密室经典逃脱第九部-逃出叔叔的房间" href="http://app.baidu.com/app/enter?appid=220353" target="_blank" data-appid="220353" data-item="title"&gt;密室经典逃脱第九部-逃出叔叔的房间&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;em class="search-icon search-icon-1"&gt;&lt;/em&gt;&lt;a class="app-name" title="密室经典逃脱第十一部-车模房间" href="http://app.baidu.com/app/enter?appid=220355" target="_blank" data-appid="220355" data-item="title"&gt;密室经典逃脱第十一部-车模房间&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a class="app-name" title="密室经典逃脱第十二部-粉红色房间" href="http://app.baidu.com/app/enter?appid=220354" target="_blank" data-appid="220354" data-item="title"&gt;密室经典逃脱第十二部-粉红色房间&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a class="app-name" title="密室经典逃脱第十三部-公文包房间(实景房间)" href="http://app.baidu.com/app/enter?appid=221236" target="_blank" data-appid="221236" data-item="title"&gt;密室经典逃脱第十三部-公文包房间(实景房间)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a class="app-name" title="密室经典逃脱第十五部-宾馆标准房间(旅馆标准房间)" href="http://app.baidu.com/app/enter?appid=221243" target="_blank" data-appid="221243" data-item="title"&gt;密室经典逃脱第十五部-宾馆标准房间(旅馆标准房间)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a class="app-name" title="密室经典逃脱第十六部-迷你白色房间" href="http://app.baidu.com/app/enter?appid=221245" target="_blank" data-appid="221245" data-item="title"&gt;密室经典逃脱第十六部-迷你白色房间&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a class="app-name" title="密室经典逃脱第十七部-逃出婴儿房间" href="http://app.baidu.com/app/enter?appid=221246" target="_blank" data-appid="221246" data-item="title"&gt;密室经典逃脱第十七部-逃出婴儿房间&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jyshis/aggbug/2349978.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jyshis/archive/2012/02/13/2349978.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jyshis/archive/2011/10/13/2210356.html</id><title type="text">解读ASP.NET MVC 4 规划路线图</title><summary type="text">Recipes 在开发速度方面，MVC框架缺乏复杂的用户控件是相当不利的。MVC团队正在想办法提供一种方式，能实现象Web Forms一样快速开发，而不会被缺乏控件的情况所拖累。一个想法是“Recipes”的使用。这用一个例子能够很好的解释： 假设开发人员相要一个客户端排序的复杂网格。在Web Froms模式，开发人员会选择一个合适的网格式用户控件。虽然一些定制是允许的，但在大多数情况下，他们会被迫接受该控件所有的功能无论是否是真正想要的。当使用MVC下的recipe，开发人员将会在一个对话框中选择他们需要的功能。然后recipe会使用必要的类库如jQuery来生成所需的HTML和Java..</summary><published>2011-10-13T07:27:00Z</published><updated>2011-10-13T07:27:00Z</updated><author><name>jyshi</name><uri>http://www.cnblogs.com/jyshis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jyshis/archive/2011/10/13/2210356.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jyshis/archive/2011/10/13/2210356.html"/><content type="html">&lt;p&gt;&lt;strong&gt;Recipes&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在开发速度方面，MVC框架缺乏复杂的用户控件是相当不利的。MVC团队正在想办法提供一种方式，能实现象Web Forms一样快速开发，而不会被缺乏控件的情况所拖累。一个想法是&amp;ldquo;Recipes&amp;rdquo;的使用。这用一个例子能够很好的解释：&lt;/p&gt;&lt;p&gt;假设开发人员相要一个客户端排序的复杂网格。在Web Froms模式，开发人员会选择一个合适的网格式用户控件。虽然一些定制是允许的，但在大多数情况下，他们会被迫接受该控件所有的功能无论是否是真正想要的。当使用MVC下的recipe，开发人员将会在一个对话框中选择他们需要的功能。然后recipe会使用必要的类库如jQuery来生成所需的HTML和JavaScript。&lt;/p&gt;&lt;p&gt;使用recipe的另一个例子是实现基于OAuth的认证。通常，这需要改变好几个地方的代码，其中有一些并非显而易见的。在这种情况下，recipe会在正确的位置添加所有必要的代码，这会显著减少导致运行失败或安全脆弱性的错误机会。&lt;/p&gt;&lt;p&gt;创作你自己的recipe应该不会有太大困难。从本质上讲，它仅仅是一个给定的EnvDTE.DTE接口实例的对话框。它会像任何其他Visual Studio插件或宏一样的工作，MVC框架将会处理如在正确的上下文菜单托管recipe这样的工作。&lt;/p&gt;&lt;p&gt;&lt;b&gt;移动开发&lt;/b&gt;&lt;/p&gt;&lt;p&gt;移动开发的第一个变化是改善即用样式表，让它们在小屏幕上看起来也很舒服。这对于拥有专业设计人员的商店来说没什么了不起的，他们可以从头开始构建CSS;但小商店往往依赖于它来开始工作。&lt;/p&gt;&lt;p&gt;对于那些想要为他们的移动客户提供更多东西的人，他们可以选择设备特有的视图。开发者不再需要用CSS和JavaScript来隐藏不适合屏幕的内容，而是可以完全删除它们。这可以立即减少占用的带宽，并可能产生更快的渲染。&lt;/p&gt;&lt;p&gt;&lt;b&gt;性能改善&lt;/b&gt;&lt;/p&gt;&lt;p&gt;众所周知，采用异步技术可以大大提高单Web&lt;a class="nounderline" title="服务器" href="http://product.it168.com/list/b/0402_1.shtml" target="_blank"&gt;服务器&lt;/a&gt;的最大并发数量。但同时大家也都知道异步技术要求一系列笨重的回调。&lt;/p&gt;&lt;p&gt;象Web Forms vNext一样，MVC将从C#5和VB 11支持async/await 的关键字。在下面的例子中，你可以看到两个异步调用(可能是到一个数据库的调用)是如何嵌入视图模型的构造函数里的。&lt;/p&gt;&lt;p&gt;&lt;img style="cursor: hand;" border="1" alt="解读ASP.NET MVC 4 规划路线图" src="http://image20.it168.com/201108_0x0/720/c7ac89f1962bbecd.png" href="http://www.cnblogs.com/picshow/index719926.shtml" /&gt;&lt;/p&gt;&lt;p&gt;另一个性能强化是内置的CSS和JavaScript组合包。这对高容量网站来说是一个重要功能，因为需要来回取得大量各种CSS和JavaScript。该功能通过把这些文件合并为一个下载文件，并同时删除注释和空白而提高渲染的时间。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;iframe id="baiduSpFrame" width="760" height="60" hspace="0" border="0" marginwidth="0" marginheight="0" framespacing="0" frameborder="0" scrolling="no" src="http://spcode.baidu.com/spcode/spstyle/style1323.jsp?tn=42041068_sp&amp;amp;ctn=0&amp;amp;styleid=1323"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;p&gt;转自：&lt;a href="http://tech.it168.com/a2011/0804/1227/000001227608.shtml"&gt;http://tech.it168.com/a2011/0804/1227/000001227608.shtml&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jyshis/aggbug/2210356.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jyshis/archive/2011/10/13/2210356.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jyshis/archive/2011/09/23/2185834.html</id><title type="text">插件开发简单模型</title><summary type="text">一、前言插件模型指应用程序由一些动态的独立模块构成，每个模块均具有一个或多个服务，并满足一定的插件协议，能够借助主程序实现主程序－插件，插件－插件之间的通讯。它定义了一套公共的接口，通过接口与插件进行通信，主要是通过反射来获取相关的属性和方法，然后再执行指定的操作。其实，它也可以理解为定义一套通用的解决方案，通过反射来获取相应的程序集的相关类型，然后执行这些指定类型的相关操作。它是一种即插即用的方案，更新及维护简便。本文仅仅是描述插件开发的大体模型，设计比较简单，主要的步骤如下：（1）、定义公共的接口以及抽象类。（2）、定义和实现相关组件。（3）、实现通用程序集反射操作类。其中，公共的接口和抽</summary><published>2011-09-23T01:49:00Z</published><updated>2011-09-23T01:49:00Z</updated><author><name>jyshi</name><uri>http://www.cnblogs.com/jyshis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185834.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185834.html"/><content type="html">&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;span color="#ff6600" size="5" style="color: #ff6600; font-size: large; padding: 0px; margin: 0px;"&gt;&lt;span style="font-size: 14pt; padding: 0px; margin: 0px;"&gt;一、前言&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;插件模型指应用程序由一些动态的独立模块构成，每个模块均具有一个或多个服务，并满足一定的插件协议，能够借助主程序实现主程序－插件，插件－插件之间的通讯。它定义了一套公共的接口，通过接口与插件进行通信，主要是通过反射来获取相关的属性和方法，然后再执行指定的操作。其实，它也可以理解为定义一套通用的解决方案，通过反射来获取相应的程序集的相关类型，然后执行这些指定类型的相关操作。它是一种即插即用的方案，更新及维护简便。&lt;/p&gt;&lt;p&gt;本文仅仅是描述插件开发的大体模型，设计比较简单，主要的步骤如下：&lt;/p&gt;&lt;p&gt;（1）、定义公共的接口以及抽象类。&lt;/p&gt;&lt;p&gt;（2）、定义和实现相关组件。&lt;/p&gt;&lt;p&gt;（3）、实现通用程序集反射操作类。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;其中，公共的接口和抽象类定义在组件Jasen.Framework.Core中，该组件中提供通用程序集反射操作类AssemblyUtility；具体实现的相关组件为Jasen.Framework.Oracle、Jasen.Framework.Access和Jasen.Framework.SqlServer，它们都实现了Jasen.Framework.Core中的公共接口。客户端可以根据实际情况来进行相应的操作。相关组件图如下：&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/jasenkin/component.jpg" width="760" longdesc="http://www.cnblogs.com/jasenkin/archive/2011/07/15/component_development.html" height="276" style="border-style: initial; border-color: initial; padding: 0px; margin: 0px;" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff6600; font-size: 14pt; padding: 0px; margin: 0px;"&gt;二、公共接口和抽象类的定义以及&lt;span color="#ff6600" style="color: #ff6600; padding: 0px; margin: 0px;"&gt;&lt;span size="5" style="font-size: large; padding: 0px; margin: 0px;"&gt;&lt;span style="font-size: 14pt; padding: 0px; margin: 0px;"&gt;相关组件的&lt;/span&gt;&lt;/span&gt;&lt;span size="5" style="font-size: large; padding: 0px; margin: 0px;"&gt;&lt;span style="font-size: 14pt; padding: 0px; margin: 0px;"&gt;定义和实现&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;首先，定义公共的接口以及抽象类，如下类图所示，定义一个公共的接口IDataTable，定义一个抽象类DataTable，这些公共的类型放置在最顶端的程序集中。而其他组件将分别重新创建，实现相对应的功能，如SqlServerDataTable、OracleDataTable和AccessDataTable实现各自的功能。注意：Assembly.LoadFile(file)动态加载程序集时，该程序集在当前的运行环境中必须不存在的，否则可能会出现意想不到的数据异常，因此相关组件的实现必须是独立的（仅仅是实现公共的接口）。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/jasenkin/class.jpg" width="478" longdesc="http://www.cnblogs.com/jasenkin/archive/2011/07/15/component_development.html" height="267" style="border-style: initial; border-color: initial; padding: 0px; margin: 0px;" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff6600; font-size: 14pt; padding: 0px; margin: 0px;"&gt;三、通用程序集反射操作类的&lt;span color="#ff6600" size="5" style="color: #ff6600; font-size: large; padding: 0px; margin: 0px;"&gt;&lt;span style="font-size: 14pt; padding: 0px; margin: 0px;"&gt;实现&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;下面的AssemblyUtility主要是对程序集操作的通用类，可以根据指定目录以及文件列表动态获取相应的程序集。同时，也可以通过目录，文件以及程序集获取相关的类型集合和对象集合。其中需要注意的是，实现的子类必须提供默认构造函数。客户端可以通过该类获取相应的类型和对象集合，然后再执行相应的操作。这些操作都是通过动态加载程序集来实现的，代码如下所示：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" style="margin: 0px;"&gt;&lt;div style="padding: 0px; margin: 0px;"&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;class&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;AssemblyUtility&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IEnumerable&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Type&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementdTypesByDirectory&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;baseDirectory)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IList&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Assembly&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblies&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetAssemblies(baseDirectory);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Type&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;types&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;new&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Type&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;();&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;foreach&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(Assembly&amp;nbsp;assembly&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;in&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblies)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;types.AddRange(GetImplementdTypes&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(assembly));&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;types;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IEnumerable&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Type&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementdTypes&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblyFile)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;if&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;!&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;File.Exists(assemblyFile))&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;null&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;try&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementdTypes&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(Assembly.LoadFile(assemblyFile));&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;catch&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(Exception&amp;nbsp;ex)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;null&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IEnumerable&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Type&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementdTypes&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(Assembly&amp;nbsp;assembly)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;if&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(assembly&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;==&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;null&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;null&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assembly.GetExportedTypes().Where(p&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;p.IsSubclassOf(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(T))&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;!&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;p.IsAbstract)&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;!&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;p.IsInterface));&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementedObjectsByDirectory&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;baseDirectory)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IList&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Assembly&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblies&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetAssemblies(baseDirectory);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;entities&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;new&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;();&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;foreach&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(Assembly&amp;nbsp;assembly&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;in&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblies)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entities.AddRange(GetImplementedObjects&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(assembly));&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;entities;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementedObjects&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblyFile)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;if&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;!&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;File.Exists(assemblyFile))&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;null&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;try&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementedObjects&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(Assembly.LoadFile(assemblyFile));&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;catch&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(Exception&amp;nbsp;ex)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;null&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementedObjects&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(Assembly&amp;nbsp;assembly)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;if&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(assembly&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;==&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;null&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;null&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IEnumerable&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Type&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;types&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementdTypes&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(assembly);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;result&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;new&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;();&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;foreach&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(Type&amp;nbsp;type&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;in&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;types)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ConstructorInfo&amp;nbsp;constructor&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;type.GetConstructor(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;new&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;Type[&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800080; padding: 0px; margin: 0px;"&gt;0&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;]);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;if&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(constructor&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;==&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;null&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;continue&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;object&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;instance&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;Activator.CreateInstance(type);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;if&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(instance&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;is&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;T)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result.Add((T)instance);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;result;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Assembly&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetAssemblies(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;baseDirectory)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;if&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;!&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Directory.Exists(baseDirectory))&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;new&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Assembly&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;();&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;[]&amp;nbsp;files&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;Directory.GetFiles(baseDirectory,&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;*.dll&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;);&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetAssemblies(files);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Assembly&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetAssemblies(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;[]&amp;nbsp;assemblyFiles)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IList&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Assembly&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblies&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;new&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Assembly&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;();&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;try&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;foreach&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;in&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblyFiles)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;if&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;!&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;File.Exists(file)&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;||&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;!&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;file.EndsWith(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;.dll&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;,StringComparison.InvariantCultureIgnoreCase)))&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;continue&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;assemblies.Add(Assembly.LoadFile(file));&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;catch&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(Exception&amp;nbsp;ex)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;new&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Assembly&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;();&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;return&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblies;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IEnumerable&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;Type&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementdTypesByDirectory&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;baseDirectory)&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IEnumerable&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;Type&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementdTypes&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblyFile)&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementedObjects&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;(Assembly&amp;nbsp;assembly)&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;以上3个方法根据不同的参数（目录、地址、程序集）来动态获取程序集中的特定类型集合，这些类型为类型T的类或者子类（非抽象类和接口）。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementedObjectsByDirectory&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;baseDirectory)&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementedObjects&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblyFile)&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;static&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementedObjects&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;T&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;(Assembly&amp;nbsp;assembly)&lt;br style="padding: 0px; margin: 0px;" /&gt;而以上3个方法根据不同的参数（目录、地址、程序集）来动态获取程序集中的特定对象集合，这些对象为类型T的类或者子类（非抽象类和接口）的实例。当组件中子类存在有参构造函数时，必须实现默认构造函数。从如下代码可以看出：如果默认构造函数不存在，将不会添加该对象实例。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConstructorInfo&amp;nbsp;constructor&amp;nbsp;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;type.GetConstructor(&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;new&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;Type[&lt;/span&gt;&lt;span style="color: #800080; padding: 0px; margin: 0px;"&gt;0&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;]);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;if&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(constructor&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;==&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;null&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;continue&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;object&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;instance&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;Activator.CreateInstance(type);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;if&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(instance&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff; padding: 0px; margin: 0px;"&gt;is&lt;/span&gt;&lt;span style="color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;T)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result.Add((T)instance);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff6600; font-size: 14pt; padding: 0px; margin: 0px;"&gt;四、通用程序集反射操作类的&lt;span color="#ff6600" size="5" style="color: #ff6600; font-size: large; padding: 0px; margin: 0px;"&gt;&lt;span style="font-size: 14pt; padding: 0px; margin: 0px;"&gt;单元测试&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;AssemblyUtility类主要的单元测试如下，仅验证了正确的情况，代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" style="margin: 0px;"&gt;&lt;div style="padding: 0px; margin: 0px;"&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;class&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;AssemblyUtilityTest&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;void&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetAssembliesTest()&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblyPath&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;AppDomain.CurrentDomain.BaseDirectory&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;+&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;\\Files\\&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IList&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Assembly&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;result&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;AssemblyUtility.GetAssemblies(assemblyPath);&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.IsNotNull(result);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800080; padding: 0px; margin: 0px;"&gt;3&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;,&amp;nbsp;result.Count);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;void&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetAssembliesByFilesTest()&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;[]&amp;nbsp;assemblyFiles&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;new&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;[]&amp;nbsp;{&amp;nbsp;AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;+&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;\\Jasen.Framework.Core.dll&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;,&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;+&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;\\Jasen.Framework.Core.Test.dll&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;,&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;www&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;,&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;ww.dll&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;};&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IList&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Assembly&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;result&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;AssemblyUtility.GetAssemblies(assemblyFiles);&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.IsNotNull(result);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800080; padding: 0px; margin: 0px;"&gt;2&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;,&amp;nbsp;result.Count);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;void&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementedObjectsByDirectoryTest()&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblyDir&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;+&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;\\Files\\&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IList&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;DataTable&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;result&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;AssemblyUtility.GetImplementedObjectsByDirectory&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;DataTable&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(assemblyDir);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.IsNotNull(result);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800080; padding: 0px; margin: 0px;"&gt;3&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;,&amp;nbsp;result.Count);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;void&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementedObjectsTest()&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblyFile&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;+&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;\\Files\\Jasen.Framework.Oracle.dll&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IList&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;DataTable&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;result&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;AssemblyUtility.GetImplementedObjects&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;DataTable&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(assemblyFile);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.IsNotNull(result);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800080; padding: 0px; margin: 0px;"&gt;1&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;,&amp;nbsp;result.Count);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;void&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementedTypesTest()&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblyFile&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;+&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;\\Files\\Jasen.Framework.Oracle.dll&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IEnumerable&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Type&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;types&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;AssemblyUtility.GetImplementdTypes&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;DataTable&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(assemblyFile);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.IsNotNull(types);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;int&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;count&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800080; padding: 0px; margin: 0px;"&gt;0&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;foreach&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(var&amp;nbsp;type&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;in&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;types)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.IsTrue(type.IsSubclassOf(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(DataTable)));&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.IsFalse(type.IsAbstract);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.IsFalse(type.IsInterface);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;count&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;++&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800080; padding: 0px; margin: 0px;"&gt;1&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;,&amp;nbsp;count);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;public&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;void&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;GetImplementdTypesByDirectoryTest()&amp;nbsp;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;string&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;assemblyDir&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;+&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;\\Files\\&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800000; padding: 0px; margin: 0px;"&gt;"&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IEnumerable&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;Type&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;types&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;AssemblyUtility.GetImplementdTypesByDirectory&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;DataTable&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(assemblyDir);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.IsNotNull(types);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;int&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;count&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;=&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800080; padding: 0px; margin: 0px;"&gt;0&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;foreach&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;(var&amp;nbsp;type&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;in&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;&amp;nbsp;types)&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.IsTrue(type.IsSubclassOf(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #0000ff; padding: 0px; margin: 0px;"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;(DataTable)));&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.IsFalse(type.IsAbstract);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.IsFalse(type.IsInterface);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;count&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;++&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;;&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #800080; padding: 0px; margin: 0px;"&gt;3&lt;/span&gt;&lt;span style="font-size: 12px; line-height: 1.5; color: #000000; padding: 0px; margin: 0px;"&gt;,&amp;nbsp;count);&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="padding: 0px; margin: 0px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff6600; font-size: 14pt; padding: 0px; margin: 0px;"&gt;五、总结&lt;/span&gt;&lt;/p&gt;&lt;p&gt;全文中主要围绕AssemblyUtility通用类来进行讲解的，仅仅是插件开发的一个思路。具体应用的话，应该相对来说比较直接，在客户端获取相应的类型集合以及对象集合，然后再执行这些集合的具体操作即可。其中，实现的组件（插件）放置在指定的目录下，通过AssemblyUtility类即可动态加载目录下的程序集，从而获取到指定类型的数据。具体执行什么操作，实现什么功能，这些都是在组件（插件）中实现即可。&lt;/p&gt;&lt;iframe id="baiduSpFrame" border="0" vspace="0" hspace="0" marginWidth="0" marginHeight="0" frameSpacing="0" frameBorder="0" scrolling="no" width="760" height="60" src="http://spcode.baidu.com/spcode/spstyle/style1323.jsp?tn=42041068_sp&amp;ctn=0&amp;styleid=1323"&gt;&lt;/iframe&gt;转自：http://www.cnblogs.com/jasenkin/archive/2011/07/15/component_development.html&lt;img src="http://www.cnblogs.com/jyshis/aggbug/2185834.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185834.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jyshis/archive/2011/09/23/2185814.html</id><title type="text">IT项目管理体系中人力资源是关键</title><summary type="text">IT项目管理作为方兴未艾的项目管理家族成员，同传统建设项目相比具有交付成果无形化、资源消耗难以衡量和知识型人才集中等特点。这些特点决定了人力资源成为影响进度、成本、质量的主要因素。因此，能否管理好IT项目的人力资源，成为IT项目成败的关键。组织架构的设置 IT项目的组织架构应该分为两个层次来考虑，一个层面是IT项目所在组织的架构，另一个层面是IT项目本身的组织架构。 IT项目需要在一种积极、开放、知识共享和信息充分沟通的环境下开展工作，项目所在的组织，需要建立起一个职责清晰、沟通顺畅的企业组织架构，对于公司内部的所有IT项目都是不无裨益的。需要注意的是，企业组织架构中最重要的就是项目经理和职能</summary><published>2011-09-23T01:33:00Z</published><updated>2011-09-23T01:33:00Z</updated><author><name>jyshi</name><uri>http://www.cnblogs.com/jyshis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185814.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185814.html"/><content type="html">&lt;p&gt;IT项目管理作为方兴未艾的项目管理家族成员，同传统建设项目相比具有交付成果无形化、资源消耗难以衡量和知识型人才集中等特点。这些特点决定了人力资源成为影响进度、成本、质量的主要因素。因此，能否管理好IT项目的人力资源，成为IT项目成败的关键。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;组织架构的设置&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IT项目的组织架构应该分为两个层次来考虑，一个层面是IT项目所在组织的架构，另一个层面是IT项目本身的组织架构。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IT项目需要在一种积极、开放、知识共享和信息充分沟通的环境下开展工作，项目所在的组织，需要建立起一个职责清晰、沟通顺畅的企业组织架构，对于公司内部的所有IT项目都是不无裨益的。需要注意的是，企业组织架构中最重要的就是项目经理和职能经理之间的职责划分，务必清晰明确，避免推诿和指责，这样才能建立起整体的信任关系和良好的沟通机制。同样，项目经理和职能经理之间职责的明确划分，也有助于项目团队成员在项目经理和职能经理的双重管理下，更为正确地判断所接受的指令，并采取措施。通常，IT企业普遍采用矩阵型组织模式，对于高端研发项目，建议尝试项目型组织模式。同时，建议企业中设立专门的PMO或项目管理总监负责整个企业的项目管理。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 一种推荐的组织架构如下图所示：&lt;/p&gt;&lt;p&gt;&lt;img alt="IT项目管理体系中人力资源是关键" border="1" href="http://www.cnblogs.com/picshow/index250725.shtml" src="http://image20.it168.com/201009_0x0/251/5bef573854fdb5d6.JPG" style="border-style: initial; border-color: initial; cursor: pointer; margin-top: 0px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; border-width: 1px;" /&gt;&lt;br style="font-size: 12px;" /&gt;▲&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对IT项目本身而言，应该在人力资源管理计划中，定义明确的组织结构图和职位描述。可以用层级型、矩阵型和文本型等方式进行描述，其目的是确保每个WBS工作包都有明确的责任人。同时，在IT项目内部建立起明确的报告关系。在组织机构设置过程中，需要注意以下内容：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1．组织机构的设置除了要明确组织架构图之外，还必须同时明确整个组织架构中的角色和职责。层级型描述能够直观的展现整个组织架构的建制和汇报关系；矩阵型描述可以明确的划分了各个角色的职责；文本型描述则对角色的职责做了进一步详细的说明，让各个项目成员更为明确自己在项目中的权力和义务；&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2．项目组织机构的建立应该按照单一的树型结构建立。树型结构有助于建立起明确的上下级关系，避免多头领导，也能够明确责任人。在重大规模的IT项目中，经常有不同的团队分别负责技术、质量、进度等内容，甚至包括后勤。有些项目经理分别为这些内容建立不同的上下级结构进行沟通。对于这种情况，更需要建立起一套单一的的树型结构，有专门的联络员负责各层的信息传达，避免多头领导，确保信息在纵向的明确传达，同时让各层面的管理团队通过横向沟通，在内部达成对技术、质量、进度的共识，并上传下达。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 此外，根据管理经验，每个人员直接管理的下属成员，尽量不要超过8人，以确保更好的管理和指导效果，避免顾此失彼。如果需要直接管理的人员数量众多，可以考虑分组进行管理，分组并不意味着增加了沟通的层次而使沟通更为复杂。通过合理的沟通管理计划，可以有效避免沟通渠道增加带来的负面影响，从而通过分组让管理更为有效和有针对性。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;项目经理和项目成员招募&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 项目的临时性决定了项目成员只是暂时的属于某个项目，项目成员要通过招募的方式进入项目。招募的来源可能来自职能部门，也可能来自公司的外包提供商或者社会招聘。项目经理也是项目团队的一员，他负责把所有需要的资源集中到最需要的环节，从而完成各项任务，最终确保整个项目目标达成。因此，同招募项目成员相比，选择项目经理尤为重要。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 项目经理的选择要考虑如下几个方面，包括职业道德、管理能力、领导能力、决策能力、知识技能等，同时还包括充沛的精力和坚忍不拔的性格。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对于职业道德，项目经理必须诚实而且正直，以实现项目的最终目标和团队的整体利益为前提考虑各项事务，具备高度的组织性和纪律性；&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对于管理能力，项目经理要熟悉项目管理的原则、善于沟通，并采取科学的管理方式；&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对于领导能力，项目经理要能够激励和鼓舞整个团队，能够有效沟通，处理好人际关系冲突，还要和公司高层保持良好的关系，获得上级的支持；&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对于决策能力，项目经理要时刻保持对风险的警惕性，和对重大事件的快速反应能力，迅速判断并做出正确的决策；&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对于知识技能，项目经理应该了解项目相关的技术，除此之外，还需要具备丰富的相关知识。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 不论任何项目，对项目经理的要求都是非常高，甚至近乎苛刻的。对项目经理个人而言，还是要把精力集中到对于项目管理及其相关知识领域的提升，对于专业知识，则应该采取&amp;ldquo;博览群书，浅尝即止&amp;rdquo;的态度，做通才而非专才。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 项目成员的招募通常要考虑下面两个问题：需要哪些人才？以及这些人员从哪里可以获得？&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 根据项目管理理论，包括人力资源在内的资源分配应该在WBS工作包之下的活动层面进行的。因此，所需要的人才，是和活动所需要的技术能力直接相关的，此外，团队协作能力、工作态度，甚至个人意愿，都是在确定项目人员需求时需要考虑的。除了之前定义的层级型组织机构图之外，矩阵型的职责图和文本型的角色、职责、职权说明文件，都是对项目团队成员要求的有效说明。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 人员的招募来源通常来自职能部门，也会利用外包提供商，或者社会招聘，需要注意的是，所有人员不管来自何种渠道，都应该进行必要的培训，帮助他们熟悉项目和融入团队。在培训过程中，也可以考察人员是否真正适合项目，从而避免因团队成员选择不当而造成的项目延期和士气低落。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 通常，下列几种类型的成员会给项目带来严重的负面影响，即挑衅者（妄加批评，贬低其他团队成员）、支配者（纵向掌管一切和操纵别人，挑战上级的领导权）、吹毛求疵者（总是去挑剔项目中存在的错误，不积极参与甚至是抵触整个项目）、多变者（总是提出新的想法和建议、不断改变主意）、寻求认同者（总是主张自己的建议、地位意识强烈）、怕事者（害怕受到批评、隐瞒信息、由于害羞而不愿沟通）、碍事者（喜欢批评、拒绝别人观点、总是认为项目管理工作无效）。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 同样，相对的几种类型应该是团队喜欢接纳的，包括发起者（积极行动）、信息搜寻者（解决问题）、信息提供者（提出建议）、鼓舞士气者（鼓舞士气）、澄清者（避免冲突）、协调者（促进协作）、民意收集者（促进全员参与）和守门员（挖掘新的想法）。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;项目团队绩效和激励措施&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 由于项目的临时性决定了项目成员都是临时服务于某个项目，最终这些成员将被遣散，或者回到职能部门，或者参与到其他项目中，甚至会面临更为糟糕的局面。因此，项目团队的成员一般来说是缺乏对项目的归属感的，这种情况在项目后期更为严峻。把松散的人员凝聚成一个项目团队，是非常困难的事情，通常，项目团队的形成会经历以下几个阶段：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1．形成阶段：形成阶段。在本阶段，团队成员相互认识，并了解项目情况以及他们在项目中的正式角色与职责。团队成员倾向于相互独立，不怎么开诚布公。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2．震荡阶段。在本阶段中，团队开始从事项目工作，制定技术决策和讨论项目管理方法。如果团队成员对不同观点和意见不能采取合作和开放的态度，团队环境可能恶化成破坏性的。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3．规范阶段。在规范阶段，团队成员开始协同工作，并按团队的需要来调整各自的工作习惯和行为，团队成员开始相互信任。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4．成熟阶段。进入这一阶段后，团队就像一个组织有序的单位那样工作。团队成员之间相互依靠，平稳高效地解决问题。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5．解散阶段。在解散阶段，团队完成所有工作，团队成员离开项目。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 评价一个项目团队的绩效，可以采取的指标包括：个人技能的改进、团队能力的改进、 团队成员离职率的降低和团队凝聚力的加强等。项目管理团队可以通过培训、指导、辅助、协助等手段改进团队绩效。鉴于团队都是由个体组成的，对于个体的提升和激励，也是确保项目团队绩效的重要手段。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 最好的管理是因人而异的。同样，最好的激励也应该是因人而异的。项目管理团队应该针对每个成员的不同特点和需求，采取最为合理和有效的激励手段。&lt;/p&gt;&lt;iframe id="baiduSpFrame" border="0" vspace="0" hspace="0" marginWidth="0" marginHeight="0" frameSpacing="0" frameBorder="0" scrolling="no" width="760" height="60" src="http://spcode.baidu.com/spcode/spstyle/style1323.jsp?tn=42041068_sp&amp;ctn=0&amp;styleid=1323"&gt;&lt;/iframe&gt;转自：http://tech.it168.com/a2010/0921/1106/000001106579.shtml&lt;img src="http://www.cnblogs.com/jyshis/aggbug/2185814.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185814.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jyshis/archive/2011/09/23/2185809.html</id><title type="text">精彩的敏捷开发建议</title><summary type="text">网络上流传了很多关于敏捷开发的具体建议，加起来可能超过上百条，有些内容很精彩，而有些说法比较片面，值得商榷。收集和整理这些至理名言是我的一项工作。这些建议的分析和评论，供大家参考、拍砖。* 完整地做完第一件事后再开始第二件。软件开发的一个大问题就是同时做几件事情，这将不可避免地使得某些工作被废弃从而造成浪费。用厨房来比喻就是：“先上这道菜，再开始烧下一个。”不一定。并行工作还是必要的，但是要有限度。* 不要害怕做决定；不要害怕改变先前的决定。最大可能地延迟决策，直到必须做决定的时候。一旦有新的信息了，不要害怕改变先前的决定。不错，这是敏捷精神所在。* 度量、度量、度量。敏捷开发帮助处理了未来不</summary><published>2011-09-23T01:29:00Z</published><updated>2011-09-23T01:29:00Z</updated><author><name>jyshi</name><uri>http://www.cnblogs.com/jyshis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185809.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185809.html"/><content type="html">&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 瀹嬩綋; line-height: 23px; background-color: #f4f9fe;"&gt;网络上流传了很多关于敏捷开发的具体建议，加起来可能超过上百条，有些内容很精彩，而有些说法比较片面，值得商榷。收集和整理这些至理名言是我的一项工作。&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;这些建议的分析和评论，供大家参考、拍砖。&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;b&gt;* 完整地做完第一件事后再开始第二件。&lt;a href="http://software.it168.com/" target="_blank" class="nounderline" title="软件" style="text-decoration: none; color: #000000; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #666666; padding-bottom: 1px;"&gt;软件&lt;/a&gt;开发的一个大问题就是同时做几件事情，这将不可避免地使得某些工作被废弃从而造成浪费。用厨房来比喻就是：&amp;ldquo;先上这道菜，再开始烧下一个。&amp;rdquo;&lt;br style="font-size: 12px;" /&gt;&lt;/b&gt;&lt;br style="font-size: 12px;" /&gt;不一定。并行工作还是必要的，但是要有限度。&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;b&gt;* 不要害怕做决定；不要害怕改变先前的决定。最大可能地延迟决策，直到必须做决定的时候。一旦有新的信息了，不要害怕改变先前的决定。&lt;br style="font-size: 12px;" /&gt;&lt;/b&gt;&lt;br style="font-size: 12px;" /&gt;不错，这是敏捷精神所在。&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;b&gt;* 度量、度量、度量。敏捷开发帮助处理了未来不确定性的问题。但是对于过去，应该没有不确定的事。&lt;/b&gt;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;说得非常好！&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;想一想 NBA 梦之队的实时技术统计，就可以知道度量的最高境界了。&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;b&gt;* 设计是为了人，而不是系统。太多的程序员偏离了设计的目的，而更关注技术本身。软件最终的成功取决于让人们有效合作并增加商业价值。&lt;br style="font-size: 12px;" /&gt;&lt;/b&gt;&lt;br style="font-size: 12px;" /&gt;说得太好了！&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;提供业务价值的业务建模绝对重要。&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;b&gt;* 过早地进行优化是万恶之源。仅仅基于对代码的静态理解就直觉地判断什么对整体性能最为重要，结论几乎总是错误的。相反，应该衡量整个系统的行为，随后来识别性能问题。&lt;br style="font-size: 12px;" /&gt;&lt;/b&gt;&lt;br style="font-size: 12px;" /&gt;很好的建议！&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;b&gt;* 决不过度强调功能的通用性。这也就是著名的&amp;ldquo;YAGNI&amp;mdash;&amp;mdash;你不会需要它的（You Aren&amp;rsquo;t Going to Need It）。&amp;rdquo;&lt;br style="font-size: 12px;" /&gt;&lt;/b&gt;&lt;br style="font-size: 12px;" /&gt;对！&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;b&gt;* 不要用代码行数来度量代码。完成特定任务所需的代码行数，不同的程序员之间和编码风格之间差异很大。应该去统计功能用例的数目。&lt;/b&gt;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;绝对正确！&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;b&gt;* 软件是可塑的。不像实体制造业，软件可以&lt;span style="text-decoration: underline;"&gt;很容易地&lt;/span&gt;获得显著改变。&lt;br style="font-size: 12px;" /&gt;&lt;/b&gt;&lt;br style="font-size: 12px;" /&gt;不全对，虽然是很容易，但可能也是高成本的。&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;b&gt;* 不要去发明新的语言。XML的出现引领了无休止的专门订制&amp;ldquo;脚本语言&amp;rdquo;的潮流，想来应该会让软件开发更加趋同。这种推理的缺陷在于，离开某个特定实施的环境，几乎从来都没能很好地精确定义操作行为。&lt;br style="font-size: 12px;" /&gt;&lt;/b&gt;&lt;br style="font-size: 12px;" /&gt;片面。可以去发明新的语言，比如 DSL。&lt;/span&gt;&lt;/p&gt;&lt;iframe id="baiduSpFrame" border="0" vspace="0" hspace="0" marginWidth="0" marginHeight="0" frameSpacing="0" frameBorder="0" scrolling="no" width="760" height="60" src="http://spcode.baidu.com/spcode/spstyle/style1323.jsp?tn=42041068_sp&amp;ctn=0&amp;styleid=1323"&gt;&lt;/iframe&gt;转自：http://www.leadge.com/djnews/article/2010/03/2010331101949.htm&lt;img src="http://www.cnblogs.com/jyshis/aggbug/2185809.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185809.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jyshis/archive/2011/09/23/2185806.html</id><title type="text">详细解析WPF中的应用程序模型</title><summary type="text">创建一个WPF应用程序 使用WPF(Windows Presentation Foundation)，您可以创建两种主要类型的应用程序：安装应用程序和 Web 浏览器的应用程序。两者之间的主要区别在于它们的托管方式，以及是否支持页面到页面之间的导航。Microsoft Visual Studio 2008为这两种应用都提供了模板。 在本实验室，我们将一起创建一个安装应用程序，最后将其通过ClickOnce或MSI部署安装到用户的操作系统，并托管在一个独立的窗口之中。这种类型的应用程序对最终用户的系统资源有完全访问权限，在部署之前也必须获得用户的许可。 1.创建基本应用 (1)启动Mi...</summary><published>2011-09-23T01:27:00Z</published><updated>2011-09-23T01:27:00Z</updated><author><name>jyshi</name><uri>http://www.cnblogs.com/jyshis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185806.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185806.html"/><content type="html">&lt;p&gt;　&lt;b&gt;创建一个WPF应用程序&lt;/b&gt;&lt;/p&gt;&lt;p&gt;使用WPF(Windows Presentation Foundation)，您可以创建两种主要类型的应用程序：安装应用程序和 Web 浏览器的应用程序。两者之间的主要区别在于它们的托管方式，以及是否支持页面到页面之间的导航。Microsoft Visual Studio 2008为这两种应用都提供了模板。&lt;/p&gt;&lt;p&gt;在本实验室，我们将一起创建一个安装应用程序，最后将其通过ClickOnce或MSI部署安装到用户的&lt;a href="http://product.it168.com/list/b/0501_1.shtml" target="_blank" class="nounderline" title="操作系统" style="text-decoration: none; color: #000000; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #666666; padding-bottom: 1px;"&gt;操作系统&lt;/a&gt;，并托管在一个独立的窗口之中。这种类型的应用程序对最终用户的系统资源有完全访问权限，在部署之前也必须获得用户的许可。&lt;/p&gt;&lt;p&gt;&lt;b&gt;1.创建基本应用&lt;/b&gt;&lt;/p&gt;&lt;p&gt;(1)启动Microsoft Visual Studio 2008&lt;/p&gt;&lt;p&gt;(2)使用C# &amp;ldquo;WPF Application&amp;rdquo;模板创建一个新项目。将其命名为&amp;rsquo;AddressBook&amp;rsquo;。这一步将搭建应用程序的基本骨架。&lt;/p&gt;&lt;p&gt;(3)地址簿应用程序会帮助您管理您的联系人。在项目中添加一个新的C#类。您可以通过Solution Explorer，在&amp;rsquo;AddressBook&amp;rsquo;项目上点击右键，选择Add?New Item，然后在对话框中选择'Class&amp;lsquo;。我们将它命名为Contact.cs，并在文件里建立我们的数据模型：&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Collections.ObjectModel;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;AddressBook&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Contact value object&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Contact&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;First name of contact&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;String FirstName&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Last name of contact&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;String LastName&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Email address of contact&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;String EmailAddress&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Home page&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Uri HomePage&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Home address&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HomeAddress&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Business address&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;BusinessAddress&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;This collection will hold all of our contacts in the&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;address book&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ContactList : ObservableCollection&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Contact&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ContactList()&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;base&lt;/span&gt;&lt;span style="color: #000000;"&gt;()&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;您会注意到ContactList这个类继承了ObservableCollection&lt;t&gt;&lt;/t&gt;，因此为数据上下文提供了可绑定的数据集合。DataContext属性用来指定绑定的数据源。使用WPF数据集合特性，您的应用程序可以自动对集合中单一数据项的更新做出反应，也可以自动对整个集合的更新做出反应。数据集合也可以支持在不修改集合中数据的情况下进行排序、过滤和浏览。ObservableCollection&lt;t&gt;&lt;/t&gt;是WPF对数据集合的内置实现。在任务2里我们会集中于数据绑定的实现。&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 瀹嬩綋; line-height: 23px; background-color: #f4f9fe;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;(4)现在让我们定义联系人的集合。您需要在项目中添加一个新的文本文件contacts.txt。您可以通过Solution Explorer，右键点击项目，选择Add?New Item随后在对话框中选择&amp;rsquo;Text File&amp;lsquo;。将以下内容复制到文件里：&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;Joe;Developer;jd@spaces.msn.com;http:&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;spaces.msn.com;1 North First St, Redmond, WA 98052; 2 South First St, Redmond, WA 98052&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Jane;Tester;jt@spaces.msn.com;http:&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;spaces.msn.com;101 Baker St, Bellevue, WA 98055; 202 Smith St, Redmond, WA 98052&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;每行都是一个联系人的信息。一旦contacts.txt文件被创建，在Solution Explorer里选中它。文件的属性会出现在下方的Properties窗口。如果这个窗口没有出现，请右键点击这个文件，选择Properties。&lt;/p&gt;&lt;p&gt;&amp;middot;请注意Build Action这个属性的值是&amp;rsquo;Content&amp;rsquo;。这个值告诉WPF的MSBuild系统，把这个文件作为伴随应用程序的松散内容。&lt;/p&gt;&lt;p&gt;&amp;middot;Copy to Output Directory这个属性的值是&amp;rsquo;Do not copy&amp;lsquo;，请把它改成&amp;rsquo;Copy if newer&amp;rsquo;。这一步确保一旦contacts.txt文件被修改了，新的版本会被复制到版本的输出目录里。&lt;/p&gt;&lt;p id="img1174768" style="height: auto; text-align: center; font-size: 14px; padding-top: 13px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; color: #000000; line-height: 23px; margin: 0px;"&gt;&lt;img alt="" src="http://image4.it168.com/2009/12/3/8bc113b1-363b-4ca4-8095-3ebb7da07806.jpg" style="border-style: initial; border-color: initial; cursor: pointer; margin-top: 0px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; border-width: 1px;" /&gt;&lt;/p&gt;&lt;p&gt;(5)为了控制应用程序启动和退出时的操作，我们下面要处理Application Startup和Exit事件。请在App.xaml.cs中添加下面的代码：&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;App()&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;AppStartup(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender, StartupEventArgs args)&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MainWindow mainWindow&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;MainWindow();&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mainWindow.WindowStartupLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;WindowStartupLocation.CenterScreen;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mainWindow.Show();&lt;br style="font-size: 12px;" /&gt;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;AppExit(Object sender, ExitEventArgs e)&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;双击MyApp.xaml察看XAML，将以下标记语句添加到MyApp.xaml里，这样Startup事件就与代码绑定了。您需要删除StartupUri属性，以便由Startup事件的代码来处理MainWindow的加载工作。&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Application&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;x:Class&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="AddressBook.App"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:x&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StartupUri&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="MainWindow.xaml"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Startup&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="AppStartup"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="AppExit"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Application&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;.Resources&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Application.Resources&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Application&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(6)下面我们创建基本的UI。UI由一个Window组成，Window里有一个Grid并进一步包含一个DockPanel。DockPanel用来显示菜单栏，工具栏，状态栏，和一个罗列所有联系人的左面板。右边的面板则用来显示当前选中的联系人的详细信息。&lt;/p&gt;&lt;p&gt;在MainWindow.xaml文件里，我们从外层的Grid开始。首先将它命名为DocumentRoot：当您双击MainWindow.xaml时，您会同时看到Design选项卡和XAML选项卡。请选择XAML选项卡来编辑xaml：&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Window&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;x:Class&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="AddressBook.MainWindow"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:x&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="AddressBook"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Loaded&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="WindowLoaded"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SizeToContent&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="WidthAndHeight"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MinWidth&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="640"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MinHeight&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="480"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Background&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="White"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="DocumentRoot"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ColumnDefinition&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="200"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ColumnDefinition&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="*"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;.RowDefinitions&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Auto"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Menu&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Auto"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Tool Bar&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="*"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Content Area&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;RowDefinition&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Auto"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Status Bar&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Window&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 瀹嬩綋; line-height: 23px; background-color: #f4f9fe;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;(7)我们所有的界面和UI元素都会放在DocumentRoot这个Grid里面。下面，我们创建一个DockPanel_Menu放菜单栏。顶层MenuItems有两个：File和Edit，每个菜单项都会包含若干子MenuItems：&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;&amp;mdash;Menu Bar--&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;DockPanel&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="DockPanel_Menu"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;Grid.ColumnSpan&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="2"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;Grid.Row&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Menu&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Background&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="White"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="File"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="New Contact"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="LaunchNewContactWizard"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="New Group"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="NotImplementedMsg"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Separator&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Properties"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="NotImplementedMsg"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Delete"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="NotImplementedMsg"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Import"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Address book (WAB)..."&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="NotImplementedMsg"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Business card vCard)..."&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="NotImplementedMsg"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Separator&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Exit"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;InputGestureText&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Alt-F4"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ExitApplication"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;.ToolTip&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ToolTip&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Click here to exit&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ToolTip&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem.ToolTip&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Menu&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Menu&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Background&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="White"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Edit"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Command&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ApplicationCommands.Copy"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Command&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ApplicationCommands.Paste"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Menu&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;DockPanel&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(8)下一步是工具栏。ToolBar有两个Buttons，允许您添加和删除联系人。我们稍后会实现添加的功能。至于删除，暂时由我们在上一步定义的NotImplementedMsg事件处理方法来处理。&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Tool Bar&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;DockPanel&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="DockPanel_Toolbar"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;Grid.ColumnSpan&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="2"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;Grid.Row&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ToolBar&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="LaunchNewContactWizard"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;ToolTip&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Add Contact"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="NotImplementedMsg"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;ToolTip&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Delete Contact"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ToolBar&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;DockPanel&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(9)左边的面板是这个地址簿应用程序的主要窗口，用来列出所有的联系人。我们使用ListBox，每个联系人的FirstName都是一个ListItem项。暂时让我们关注ListBox和DockPanel，稍后再回来看数据绑定。&lt;/p&gt;&lt;p&gt;既然看到这儿了，我们顺便为联系人列表定义一个上下文菜单。这样就可以添加一个联系人或者添加一个组了：&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Left Pane for contact list view&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;DockPanel&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="DockPanel_LeftPane"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;Grid.Row&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="2"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ListBox&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="allContacts"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;SelectionChanged&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ListItemSelected"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ListBox&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;.ContextMenu&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContextMenu&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Add a Contact"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="LaunchNewContactWizard"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Add a Group"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="NotImplementedMsg"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContextMenu&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ListBox.ContextMenu&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ListBox&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;DockPanel&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 瀹嬩綋; line-height: 23px; background-color: #f4f9fe;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;(10)主窗口UI上另一个关键元素是状态栏。让我们在StatusBar元素里放置一个TextBlock：&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Status Bar&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;DockPanel&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="DockPanel_Statusbar"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;Grid.ColumnSpan&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="2"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;Grid.Row&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="3"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;StatusBar&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;BorderBrush&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Black"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BorderThickness&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBlock&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="tb"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Black"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Status bar&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBlock&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;StatusBar&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;DockPanel&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;(11)最后是右手边的窗口框。在左边ListItems显示之后，选择一条联系人，就会在右手边的这个Frame_RightPane里显示这个联系人的详细信息：&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;RightPanel&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Frame&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Frame_RightPane"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;Grid.Row&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="2"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(12)到此为止，我们已经在XAML里完成了UI元素的添加，是时候看看后面的代码了。在MainWindow.xaml.cs文件里，为MainWindow这个类添加ExitApplication，NotImplementedMsg，WindowLoaded，ListItemSelected和LaunchNewContactWizard方法。您会注意到后三个方法的实现是空的。我们稍后再添加这部分逻辑。&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Triggered on Window load. Sets the ContactList collection&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;as the Data Context.&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;WindowLoaded(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender, RoutedEventArgs e)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Triggers application shutdown&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ExitApplication(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender, RoutedEventArgs e)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Close();&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Shows a message box informing user that a feature&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;hasn't been implemented.&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;NotImplementedMsg(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender, RoutedEventArgs e)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MessageBox.Show(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;This feature has not been implemented.&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Not Implemented&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Triggered when an item in the Contacts list is selected&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ListItemSelected(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender,&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SelectionChangedEventArgs args)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Triggered when context menu or other toolbar option&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;is clicked to launch&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;'Create a new contact' dialog&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;LaunchNewContactWizard(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender,&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RoutedEventArgs e)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(13)生成并运行您的应用程序。地址簿应用程序的基本框架已经搭好了。因为我们尚未初始化或使用联系人的信息，您在程序的左右面板上不会看到任何数据。在这一步，您的应用程序看上去是这样的：&lt;/p&gt;&lt;p id="img3746455" style="height: auto; text-align: center; font-size: 14px; padding-top: 13px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; color: #000000; line-height: 23px; margin: 0px;"&gt;&lt;img alt="" src="http://image4.it168.com/2009/12/3/ffe8a527-8907-49be-95f1-710b35b292ff.jpg" style="border-style: initial; border-color: initial; cursor: pointer; margin-top: 0px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; border-width: 1px;" /&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 瀹嬩綋; line-height: 23px; background-color: #f4f9fe;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;　&lt;b&gt;　2. 使用Property Bag来&lt;a href="http://storage.it168.com/" target="_blank" class="nounderline" title="存储" style="text-decoration: none; color: #000000; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #666666; padding-bottom: 1px;"&gt;存储&lt;/a&gt;联系人的集合&lt;/b&gt;&lt;/p&gt;&lt;p&gt;(1)在程序启动的时候，应用程序必须从文件中读出联系人的信息，并初始化ContactList对象。打开App.xaml.cs文件并编辑。ReadContactsFromFile方法会从文件中读出数据。在类里添加这个方法，并添加一个辅助方法来把数据转化成联系人对象：&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Reads contact information from file&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ContactList ReadContactsFromFile()&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ContactList contactList&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ContactList();&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Create an instance of StreamReader to read from a file.&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;The using statement also closes the StreamReader.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(StreamReader sr&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;StreamReader(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;contacts.txt&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String line;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Read and display lines from the file until the&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;end of the file is reached.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;while&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;((line&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sr.ReadLine())&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;contactList.Add(CreateContactFromLine(line));&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;contactList;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;De-tokenize one line of contact information and&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;hydrate a Contact object&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Contact CreateContactFromLine(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;line)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[] tokens&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;line.Split(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt;[] {&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;;&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;});&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(tokens.Length&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;6&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;throw&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ApplicationException(&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String.Format(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Input contact file format.&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Expected tokens {0}; Actual tokens {1}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;6&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tokens.Length));&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Contact contact&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Contact();&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;contact.FirstName&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;tokens[&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;contact.LastName&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;tokens[&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;contact.EmailAddress&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;tokens[&lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;contact.HomePage&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(String.IsNullOrEmpty(tokens[&lt;/span&gt;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;])&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;:&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Uri(tokens[&lt;/span&gt;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;], UriKind.Absolute));&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;contact.HomeAddress&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;tokens[&lt;/span&gt;&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;contact.BusinessAddress&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;tokens[&lt;/span&gt;&lt;span style="color: #800080;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;contact;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;ReadContactFromFile方法使用System.IO.StreamReader。请确认您在命名空间声明处使用了System.IO：&lt;/p&gt;&lt;p&gt;using System.IO;&lt;/p&gt;&lt;p&gt;(2)下面我们把ReadContactsFromFile方法返回的ContactList数据，添加到应用程序Property Bag里面。如下修改AppStartup方法：&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Triggered on application startup. Positions the window,&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Initializes the contact list model and adds it to the&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Property Bag.&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;AppStartup(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender, StartupEventArgs args)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;initialize the Contacts collection using data from file&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ContactList contactList&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ReadContactsFromFile();&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;add it to the Property Bag&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Properties[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContactList&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;contactList;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MainWindow mainWindow&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;MainWindow();&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;make sure the window appears in the center of the screen&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mainWindow.WindowStartupLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WindowStartupLocation.CenterScreen;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mainWindow.Show();&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(3)让我们顺便在这里创建一个方法，来把联系人数据的更新存回到contacts.txt文件里。因为逻辑非常简单且与本实验关系不大，我们这里就不去实现它了：&lt;/p&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 588px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Persists changes from ContactList object in Property Bag&amp;nbsp;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;to file.&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;SaveContactsToFile(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;fileName)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(4) 生成并运行应用程序。此时的UI看上去应该和上一个任务结束时没什么不同，看上去我们好像没有什么进展。别着急!&lt;/p&gt;&lt;iframe id="baiduSpFrame" border="0" vspace="0" hspace="0" marginWidth="0" marginHeight="0" frameSpacing="0" frameBorder="0" scrolling="no" width="760" height="60" src="http://spcode.baidu.com/spcode/spstyle/style1323.jsp?tn=42041068_sp&amp;ctn=0&amp;styleid=1323"&gt;&lt;/iframe&gt;转自：http://tech.sina.com.cn/s/2009-12-04/07281160468.shtml&lt;img src="http://www.cnblogs.com/jyshis/aggbug/2185806.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185806.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jyshis/archive/2011/09/23/2185798.html</id><title type="text">自食其力！ASP.NET 4打造HTML5视频控件</title><summary type="text">转自：http://tech.hexun.com/2011-03-11/127852645.html简介 ASP.NET 4中有大量由微软或第三方提供的控件，但要是这些控件不能满足你的需求，那该怎么办呢?答案是：自己动手去设计! 本教程会指导你如何去开发一个ASP.NET 的服务端控件，你会感受到在开发自己的服务端控件的同时，也提升了你开发的Web应用的质量。我们一般在开发自己的服务端控件的时候，会继承已有的一些服务端控件并添加一些自己的功能。当开发完服务端控件后，我们可以在不同的工程中共享这个控件。一般地，我们会把开发后经过编译的控件放在Web控件库，跟我们正常的工程分开。当我们要在某..</summary><published>2011-09-23T01:24:00Z</published><updated>2011-09-23T01:24:00Z</updated><author><name>jyshi</name><uri>http://www.cnblogs.com/jyshis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185798.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185798.html"/><content type="html">&lt;p&gt;&lt;b&gt;转自：&lt;/b&gt;&lt;span class="Apple-style-span" style="line-height: 21px;"&gt;&lt;a href="http://tech.hexun.com/2011-03-11/127852645.html"&gt;http://tech.hexun.com/2011-03-11/127852645.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;　简介&lt;/b&gt;&lt;/p&gt;&lt;p&gt;ASP.NET 4中有大量由微软或第三方提供的控件，但要是这些控件不能满足你的需求，那该怎么办呢?答案是：自己动手去设计!&lt;/p&gt;&lt;p&gt;本教程会指导你如何去开发一个ASP.NET 的服务端控件，你会感受到在开发自己的服务端控件的同时，也提升了你开发的Web应用的质量。我们一般在开发自己的服务端控件的时候，会继承已有的一些服务端控件并添加一些自己的功能。当开发完服务端控件后，我们可以在不同的工程中共享这个控件。一般地，我们会把开发后经过编译的控件放在Web控件库，跟我们正常的工程分开。当我们要在某个项目中用到该控件时，只需要简单的把它拖拉到设计界面中去，就完成了，十分简单。&lt;/p&gt;&lt;p&gt;&lt;b&gt;HTML5 Video概述&lt;/b&gt;&lt;/p&gt;&lt;p&gt;目前，HTML5已经慢慢开始流行了，在很多非IE的浏览器(IE 9中对 HTML5有相当好的支持)已经支持很多HTML5的特性了。现在，还没有很统一的播放视频的方式，大多数是靠FLASH或者其他播放器插件，因此在HTML5规范中，就定义了播放视频的标准，其中目前支持两种视频格式：Ogg文件(Ogg全称应该是OGGVobis(oggVorbis)是一种新的音频压缩格式，类似于&lt;a href="http://product.it168.com/list/b/0310_1.shtml" target="_blank" class="nounderline" title="MP3" style="text-decoration: none; color: #000000; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #666666; padding-bottom: 1px;"&gt;MP3&lt;/a&gt;等的音乐格式。Ogg是完全免费、开放和没有专利限制的。OggVorbis文件的扩展名是.OGG。Ogg文件格式可以不断地进行大小和音质的改良，而不影响旧有的编码器或播放器)和&lt;/p&gt;&lt;p&gt;MPEG4文件格式。在HTML5中，要展示一个视频，可以用如下方式实现：&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 582px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;video&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="320"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="240"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;controls&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="controls"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;source&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;src&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="movie.ogg"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="video/ogg"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;source&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;src&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="movie.mp4"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="video/mp4"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;video&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;这个控件有象Play,pause和音量等属性，也有宽度和高度两个属性。下面是相关的属性列表：&lt;/p&gt;&lt;p&gt;&lt;b&gt;autoplay:&lt;/b&gt;该属性表明视频加载后是否自动播放还是需要有人工播放&lt;/p&gt;&lt;p&gt;&lt;b&gt;controls:&amp;nbsp;&lt;/b&gt;指定该控件是否显示。&lt;/p&gt;&lt;p&gt;&lt;b&gt;height:&lt;/b&gt;播放器的高度。&lt;/p&gt;&lt;p&gt;&lt;b&gt;loop:&lt;/b&gt;指定设置该控件是否循环播放视频&lt;/p&gt;&lt;p&gt;&lt;b&gt;preload:&amp;nbsp;&lt;/b&gt;指定控件是否在页面加载时就开始加载视频，如果不设置该属性，则默认是autoplay属性。&lt;/p&gt;&lt;p&gt;&lt;b&gt;src:&amp;nbsp;&lt;/b&gt;播放视频文件的路径。&lt;/p&gt;&lt;p&gt;&lt;b&gt;width:&amp;nbsp;&lt;/b&gt;播放器的宽度&lt;/p&gt;&lt;p&gt;&lt;b&gt;poster:&amp;nbsp;&lt;/b&gt;当没有视频时，显示的图片。&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;下面我们就开始一步步设计该视频控件了&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;首先我们使用的是Visual Studio 2010,当然你也可以使用免费的Visual Web Developer Express。&lt;/p&gt;&lt;p&gt;我们要设计的HTML5视频播放器只是一个简单的例子，在不同的支持HTML5的浏览器中可能外观稍微有点不同，比如在FireFox下，会是如下图的样子：&lt;/p&gt;&lt;p&gt;&lt;img alt="" border="1" href="http://www.cnblogs.com/picshow/index508002.shtml" src="http://image20.it168.com/201103_500x375/509/ae2f0a974757db2d.PNG" style="border-style: initial; border-color: initial; cursor: pointer; margin-top: 0px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; border-width: 1px;" /&gt;&lt;br style="font-size: 12px;" /&gt;▲&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤2 &amp;nbsp;创建自定义组件工程&lt;/b&gt;&lt;/p&gt;&lt;p&gt;首先，我们必须创建一个新的类库工程去存放我们的自定义控件。当在单独分离的类库中创建了自定义控件后，我们可以将其编译为单独的DLL，这样在其他项目中需要的时候就可以用到了。&lt;/p&gt;&lt;p&gt;用Visual Studio 2010打开你已经建立好的asp.net web项目方案，在方案资源浏览器中，&lt;a href="http://product.it168.com/list/b/0220_1.shtml" target="_blank" class="nounderline" title="鼠标" style="text-decoration: none; color: #000000; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #666666; padding-bottom: 1px;"&gt;鼠标&lt;/a&gt;右击方案名，在弹出的菜单中选择新增项目。在接下来弹出的菜单中，选择工程类型为Web，并且选择ASP.NET Server Control，将工程命名为CustomerControl,点确定完成这个步骤，如下图：&lt;/p&gt;&lt;p&gt;&lt;img alt="" border="1" href="http://www.cnblogs.com/picshow/index508003.shtml" src="http://image20.it168.com/201103_500x375/509/5f4bdac0f4db2a1.PNG" style="border-style: initial; border-color: initial; cursor: pointer; margin-top: 0px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; border-width: 1px;" /&gt;&lt;br style="font-size: 12px;" /&gt;▲&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤3 开始设计自定义的Web控件&lt;/b&gt;&lt;/p&gt;&lt;p&gt;在资源管理器中，右键点CustomControls工程，选择&amp;ldquo;Add New Item&amp;rdquo;，再在弹出的菜单中选择Web的分类目录，然后在模版中选择ASP.NET Server Control选项，如下图：&lt;/p&gt;&lt;p&gt;&lt;img alt="" border="1" href="http://www.cnblogs.com/picshow/index508005.shtml" src="http://image20.it168.com/201103_500x375/509/d844a1bbf6d1a71d.PNG" style="border-style: initial; border-color: initial; cursor: pointer; margin-top: 0px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; border-width: 1px;" /&gt;&lt;br style="font-size: 12px;" /&gt;▲&lt;/p&gt;&lt;p&gt;将控件命名为：VideoPlayer.cs，点确定，最后Visual Studio为我们生成了初步的代码如下：&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 582px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Collections.Generic;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.ComponentModel;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Linq;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Text;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web.UI;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web.UI.WebControls;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CustomControls&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;[DefaultProperty(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Text&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br style="font-size: 12px;" /&gt;[ToolboxData(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;{0}:VideoPlayer runat=server&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VideoPlayer : WebControl&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;[Bindable(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br style="font-size: 12px;" /&gt;[Category(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Appearance&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br style="font-size: 12px;" /&gt;[DefaultValue(&lt;/span&gt;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br style="font-size: 12px;" /&gt;[Localizable(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;String s&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(String)ViewState[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Text&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;((s&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.ID&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;]&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;: s);&lt;br style="font-size: 12px;" /&gt;}&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;ViewState[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Text&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;value;&lt;br style="font-size: 12px;" /&gt;}&lt;br style="font-size: 12px;" /&gt;}&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;RenderContents(HtmlTextWriter output)&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;output.Write(Text);&lt;br style="font-size: 12px;" /&gt;}&lt;br style="font-size: 12px;" /&gt;}&lt;br style="font-size: 12px;" /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;我们要来修改上面的代码，修改后的代码如下：&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 582px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Collections.Generic;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.ComponentModel;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Linq;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Text;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web.UI;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web.UI.WebControls;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CustomControls&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[ToolboxData(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;{0}:VideoPlayer runat=server&amp;gt;&amp;lt;/{0}:VideoPlayer&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VideoPlayer : WebControl&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;注意的是，默认的代码中，为控件生成了Text属性，然而这里并不需要，因此我们把&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 582px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;[DefaultProperty(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Text&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;这行删除掉。&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤4 继续为控件增加属性&lt;/b&gt;&lt;/p&gt;&lt;p&gt;根据之前的介绍，我们开始为控件增加一些属性，要增加的属性如下：&lt;/p&gt;&lt;p&gt;&lt;b&gt;VideoUrl:&lt;/b&gt;指定视频播放的地址。&lt;/p&gt;&lt;p&gt;&lt;b&gt;PosterUrl:&lt;/b&gt;&amp;nbsp;这个是当没有视频时，显示的替代图片的地址。&lt;/p&gt;&lt;p&gt;&lt;b&gt;AutoPlay:&lt;/b&gt;指示视频是否自动装载播放。&lt;/p&gt;&lt;p&gt;&lt;b&gt;DisplayControlButtons:&amp;nbsp;&lt;/b&gt;指示是否显示或者隐藏播放的相关按钮。&lt;/p&gt;&lt;p&gt;&lt;b&gt;Loop:&amp;nbsp;&lt;/b&gt;指示视频是否自动播放。&lt;/p&gt;&lt;p&gt;增加属性后的代码如下：&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 582px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Collections.Generic;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.ComponentModel;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Linq;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Text;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web.UI;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web.UI.WebControls;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CustomControls&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[ToolboxData(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;{0}:VideoPlayer runat=server&amp;gt;&amp;lt;/{0}:VideoPlayer&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VideoPlayer : WebControl&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;_Mp4Url;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Mp4Url&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;_Mp4Url; }&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{ _Mp4Url&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;value; }&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;_OggUrl&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OggUrl&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;_OggUrl; }&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{ _OggUrl&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;value; }&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;_Poster&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;PosterUrl&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;_Poster; }&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{ _Poster&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;value; }&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;_AutoPlay&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;AutoPlay&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;_AutoPlay; }&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{ _AutoPlay&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;value; }&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;_Controls&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;DisplayControlButtons&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;_Controls; }&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{ _Controls&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;value; }&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;_Loop&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Loop&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;_Loop; }&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;{ _Loop&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;value; }&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤5 修改RenderContents方法&lt;/b&gt;&lt;/p&gt;&lt;p&gt;服务端控件的主要目的就是向浏览器输出内容。因此，作为开发者，我们就必须设定好我们的控件要向客户端浏览器输出什么样的内容。因此，我们可以重写RenderContents方法即可，如下代码：&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 582px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;RenderContents(HtmlTextWriter output)&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;要注意的是，该方法有个参数是以HtmlTextWriter为对象的output,它可以设置向浏览器输出HTML，它有很多方法和属性，比如AddAttribute和RenderBeginTag。&lt;/p&gt;&lt;p&gt;接下来我们为控件增加向浏览器输出的方法代码了，如下：&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 582px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;RenderContents(HtmlTextWriter output)&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AddAttribute(HtmlTextWriterAttribute.Id,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.ID);&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AddAttribute(HtmlTextWriterAttribute.Width,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Width.ToString());&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AddAttribute(HtmlTextWriterAttribute.Height,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Height.ToString());&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(DisplayControlButtons&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AddAttribute(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;controls&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;controls&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(PosterUrl&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AddAttribute(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;poster&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, PosterUrl);&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(AutoPlay&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AddAttribute(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;autoplay&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;autoplay&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(Loop&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AddAttribute(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;loop&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;loop&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br style="font-size: 12px;" /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;步骤6 输出VIDEO&lt;a href="http://product.it168.com/list/b/0678_1.shtml" target="_blank" class="nounderline" title="标签" style="text-decoration: none; color: #000000; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #666666; padding-bottom: 1px;"&gt;标签&lt;/a&gt;内容&lt;/b&gt;&lt;/p&gt;&lt;p&gt;紧接着，就可以输出video&lt;a href="http://product.pcpop.com/bq/00000_1.html" target="_blank" class="nounderline" title="标签" style="text-decoration: none; color: #000000; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #666666; padding-bottom: 1px;"&gt;标签&lt;/a&gt;内的内容了，接着增加如下代码：&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 582px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;output.RenderBeginTag(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;video&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(OggUrl&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AddAttribute(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;src&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, OggUrl);&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AddAttribute(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;type&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;video/ogg&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.RenderBeginTag(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;source&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.RenderEndTag();&lt;br style="font-size: 12px;" /&gt;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(Mp4Url&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AddAttribute(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;src&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, Mp4Url);&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AddAttribute(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;type&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;video/mp4&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.RenderBeginTag(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;source&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.RenderEndTag();&lt;br style="font-size: 12px;" /&gt;}&lt;br style="font-size: 12px;" /&gt;output.RenderEndTag();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;我们在输出标签的内容时，先使用了RenderBeginTag方法往浏览器端输出一个标签video,并使用RenderEndTag指示标签内容已经输出完毕。接下来在上面的代码中我们判断指定的文件格式的视频文件是否存在，如果存在的话，则按指定的文件格式输出。&lt;/p&gt;&lt;p&gt;最后，为了防止ASP.NET 控件在向浏览器输出时，带有span标签，我们可以把它移走，只需要重写render方法即可，如下：&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 582px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Render(HtmlTextWriter writer)&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.RenderContents(writer);&lt;br style="font-size: 12px;" /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤7 编译生成控件&lt;/b&gt;&lt;/p&gt;&lt;p&gt;选择Build 菜单，生成整个解决方案，如下图：&lt;/p&gt;&lt;p&gt;&lt;img alt="" border="1" href="http://www.cnblogs.com/picshow/index508064.shtml" src="http://image20.it168.com/201103_0x0/509/2746fbb863322f37.PNG" style="border-style: initial; border-color: initial; cursor: pointer; margin-top: 0px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; border-width: 1px;" /&gt;&lt;br style="font-size: 12px;" /&gt;▲&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤8 将控件放到工具箱去&lt;/b&gt;&lt;/p&gt;&lt;p&gt;接下来要把我们做好的控件放到工具箱中去以方便今后使用。步骤如下：&lt;/p&gt;&lt;p&gt;1) 打开工具箱视图，&lt;a href="http://product.pcpop.com/Mouse/00000_1.html" target="_blank" class="nounderline" title="鼠标" style="text-decoration: none; color: #000000; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #666666; padding-bottom: 1px;"&gt;鼠标&lt;/a&gt;右键在空白的地方，在弹出的菜单中点choose item,&lt;/p&gt;&lt;p&gt;2) 在弹出的菜单中选择.NET 组件卡，并选择浏览，浏览我们刚做好的CustomerControll工程中的bin\debug目录下的CustomControls.DLL,最后点确定，如下图所示：&lt;/p&gt;&lt;p&gt;&lt;img alt="" border="1" href="http://www.cnblogs.com/picshow/index508065.shtml" src="http://image20.it168.com/201103_500x375/509/25b7c20520b94af4.PNG" style="border-style: initial; border-color: initial; cursor: pointer; margin-top: 0px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; border-width: 1px;" /&gt;&lt;br style="font-size: 12px;" /&gt;▲&lt;/p&gt;&lt;p&gt;这个时候，该控件就会在工具箱出现了，如下图：&lt;/p&gt;&lt;p&gt;&lt;img alt="" border="1" href="http://www.cnblogs.com/picshow/index508066.shtml" src="http://image20.it168.com/201103_0x0/509/97a372b580e3b3d4.PNG" style="border-style: initial; border-color: initial; cursor: pointer; margin-top: 0px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; border-width: 1px;" /&gt;&lt;br style="font-size: 12px;" /&gt;▲&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤8 把控件加到aspx页面&lt;/b&gt;&lt;/p&gt;&lt;p&gt;我们可以随便新建立一个aspx页面，把控件从工具箱拖拉到页面中就可以了，可以看到如下代码：&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-right: 5.4pt; padding-left: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; padding-bottom: 4px; width: 582px; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cc1:VideoPlayer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="VideoPlayer1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Mp4Url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="videos/movie.mp4"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;OggUrl&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="videos/movie.ogg"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="400"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="300"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我们还可以在design设计视图时，具体指定这个控件的每个属性的值得了，看，是不是很简单方便?&lt;/p&gt;&lt;p&gt;最后运行我们的程序，可以看到如下所示的播放器了：&lt;/p&gt;&lt;p&gt;&lt;img alt="" border="1" href="http://www.cnblogs.com/picshow/index508070.shtml" src="http://image20.it168.com/201103_500x375/509/491371bf9348188.PNG" style="border-style: initial; border-color: initial; cursor: pointer; margin-top: 0px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; border-width: 1px;" /&gt;&lt;/p&gt;&lt;iframe id="baiduSpFrame" border="0" vspace="0" hspace="0" marginWidth="0" marginHeight="0" frameSpacing="0" frameBorder="0" scrolling="no" width="760" height="60" src="http://spcode.baidu.com/spcode/spstyle/style1323.jsp?tn=42041068_sp&amp;ctn=0&amp;styleid=1323"&gt;&lt;/iframe&gt;&lt;img src="http://www.cnblogs.com/jyshis/aggbug/2185798.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185798.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jyshis/archive/2011/09/23/2185795.html</id><title type="text">C# 5.0将带来的五大全新功能</title><summary type="text">第一：绑定运算符，:=: 这个只是简化了数据绑定，跟ASP.NET MVC3不断改进一样，其实不是什么亮点改进。comboBox1.Text :=: textBox1.Text;//将文本框的内容绑定到下拉框。 第二：带参数的泛型构造函数： 这个的加入给一些设计增加了强大功能，泛型早在C#2.0加入后就有着强大的应用，一般稍微设计比较好的框架，都会用到泛型，C#5.0加入带参数泛型构造函数，则在原有基础上对C#泛型完善了很多。:) publicclass T MyClass : T: class,new() //we might have publicclass T MyClass...</summary><published>2011-09-23T01:22:00Z</published><updated>2011-09-23T01:22:00Z</updated><author><name>jyshi</name><uri>http://www.cnblogs.com/jyshis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185795.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185795.html"/><content type="html">&lt;p&gt;第一：绑定运算符，:=:&lt;/p&gt;&lt;p&gt;这个只是简化了数据绑定，跟ASP.NET MVC3不断改进一样，其实不是什么亮点改进。&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-bottom: 4px; padding-left: 5.4pt; width: 582px; padding-right: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;comboBox1.Text :&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;: textBox1.Text;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;//&lt;/span&gt;&lt;span style="color: #000000;"&gt;将文本框的内容绑定到下拉框。&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;第二：带参数的泛型构造函数：&lt;/p&gt;&lt;p&gt;这个的加入给一些设计增加了强大功能，泛型早在C#2.0加入后就有着强大的应用，一般稍微设计比较好的框架，都会用到泛型，C#5.0加入带参数泛型构造函数，则在原有基础上对C#泛型完善了很多。:)&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-bottom: 4px; padding-left: 5.4pt; width: 582px; padding-right: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;class T MyClass : T: class,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;()&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;//&lt;/span&gt;&lt;span style="color: #000000;"&gt;we might have&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;class T MyClass : T:class,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;第三：支持null类型运算：&lt;/p&gt;&lt;p&gt;此功能，个人觉得并非什么大的亮点，但至少对null类型，特别是有数据计算的这种null类型的支持，写代码还是方便不少。&lt;/p&gt;转自：http://tech.hexun.com/2011-05-24/129908043.html&lt;p&gt;注意对于Nullable Types，在C#2.0就加入进来了，但是不支持计算，比如：&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-bottom: 4px; padding-left: 5.4pt; width: 582px; padding-right: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;? x&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;? y&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;x&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;40&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;那么y值是多少?不支持计算，得到的是null，想必大家知道为什么结果是null了吧?但C#5.0可以，40加一个null的整数，我们要的结果是40，不过份吧?&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-bottom: 4px; padding-left: 5.4pt; width: 582px; padding-right: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;x?&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;y?&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;x&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;40&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;Myobject obj&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;Myotherobj obj2&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;obj.MyProperty ???&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Myotherobj();&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;第四：case支持表达式：&lt;/p&gt;&lt;p&gt;这个是一个我很早就想如果能这样就好了，没想到在C#5.0里就加入此功能，以前case里只能写一个具体的常量，而现在可以加表达式了，灵活多了。&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-bottom: 4px; padding-left: 5.4pt; width: 582px; padding-right: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;switch(myobj){&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.IsNullorEmpty(myotherobj):&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;//&lt;/span&gt;&lt;span style="color: #000000;"&gt;逻辑代码&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;myotherobj.Trim().Lower:&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;//&lt;/span&gt;&lt;span style="color: #000000;"&gt;逻辑代码&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;第五：扩展属性。&lt;/p&gt;&lt;p&gt;我们在C#3.0里有扩展方法，那么在C#5.0里将会加入扩展属性的感念，对照扩展方法，不难理解扩展属性的概念了。以下为扩展属性的定义举例：&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-bottom: 4px; padding-left: 5.4pt; width: 582px; padding-right: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;[Associate(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;static&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Zivsoft_ExtensionProperty {&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;C#5.0 远远不只是上面描述的5点新功能，它如同C#4.0加入dynamic概念一样，会加入异步处理概念，这个不是几行代码就能表达，而是将在设计，架构上，又会掀起一次飞跃&amp;hellip;&amp;hellip;&lt;/p&gt;&lt;p&gt;为了大家抢先看，就给一段C#5.0一段简单的异步操作的代码例子，注意(C#5.0两个新加的关键字async, await):&lt;/p&gt;&lt;div id="div_code" style="height: auto; text-align: left; font-size: 14px; padding-top: 4px; line-height: 23px; padding-bottom: 4px; padding-left: 5.4pt; width: 582px; padding-right: 5.4pt; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e6e6e6; word-break: break-all; background-position: initial initial; background-repeat: initial initial; border-width: 0.5pt; border-color: windowtext; border-style: solid;"&gt;&lt;div style="height: auto; text-align: left; font-size: 14px; padding-top: 15px; line-height: 23px;"&gt;&lt;span style="color: #000000;"&gt;Task GetMovieAsync(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;title);&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;Task PlayMovieAsync(Movie movie);&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;async void GetAndPlayMoviesAsync(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[] titles)&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;foreach (var title in titles)&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;{&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;var movie&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;await GetMovieAsync(title);&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;await PlayMovieAsync(movie);&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;}&lt;br style="font-size: 12px;" /&gt;&lt;br style="font-size: 12px;" /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;iframe id="baiduSpFrame" border="0" vspace="0" hspace="0" marginWidth="0" marginHeight="0" frameSpacing="0" frameBorder="0" scrolling="no" width="760" height="60" src="http://spcode.baidu.com/spcode/spstyle/style1323.jsp?tn=42041068_sp&amp;ctn=0&amp;styleid=1323"&gt;&lt;/iframe&gt;&lt;img src="http://www.cnblogs.com/jyshis/aggbug/2185795.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jyshis/archive/2011/09/23/2185795.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jyshis/archive/2011/09/22/2185507.html</id><title type="text">【共享】将程序制作为服务运行的方法！</title><summary type="text">想让一个程序在启动系统的时候自动运行，你有什么好办法？添加到启动组？那如果别人删除掉就不管用了。如果你使用了Windows NT/2000/XP，就可以试试把这个程序添加为一个服务，这样只有拥有权限的人才可以更改服务，只要你设置好权限，就不用担心会被别人删除了。 要把应用程序添加为服务，你需要两个小软件：Instsrv.exe和Srvany.exe。 Instsrv.exe可以给系统安装和删除服务，Srvany.exe可以让程序以服务的方式运行。 把这两个程序保存在一个方便的位置，例如C盘根目录下。 我们举例来说明，把OE作为一个服务添加进Windows XP Professional...</summary><published>2011-09-22T13:06:00Z</published><updated>2011-09-22T13:06:00Z</updated><author><name>jyshi</name><uri>http://www.cnblogs.com/jyshis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jyshis/archive/2011/09/22/2185507.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jyshis/archive/2011/09/22/2185507.html"/><content type="html">&lt;p&gt;想让一个程序在启动系统的时候自动运行，你有什么好办法？添加到启动组？那如果别人删除掉就不管用了。如果你使用了Windows NT/2000/XP，就可以试试把这个程序添加为一个服务，这样只有拥有权限的人才可以更改服务，只要你设置好权限，就不用担心会被别人删除了。&lt;/p&gt;&lt;p&gt;要把应用程序添加为服务，你需要两个小软件：Instsrv.exe和Srvany.exe。&lt;/p&gt;&lt;p&gt;Instsrv.exe可以给系统安装和删除服务，Srvany.exe可以让程序以服务的方式运行。&lt;/p&gt;&lt;p&gt;把这两个程序保存在一个方便的位置，例如C盘根目录下。&lt;/p&gt;&lt;p&gt;我们举例来说明，把OE作为一个服务添加进Windows XP Professional操作系统中，并把这个服务命名为&amp;ldquo;Mail&amp;rdquo;。&lt;br /&gt;在运行中输入&amp;ldquo;CMD&amp;rdquo;，回车，打开命令行窗口，在提示符后面直接输入：&amp;ldquo;c:\instsrv.exe Mail c:\srvany.exe&amp;rdquo;然后回车，其中的&amp;ldquo;c:\instsrv.exe&amp;rdquo;和&amp;ldquo;c:\srvany.exe&amp;rdquo;表示这两个程序保存的位置，而Mail则是你想添加的服务名称。&lt;/p&gt;&lt;p&gt;运行Regedit打开注册表编辑器，在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下，找到刚才添加的Mail，点击右键，新建一个键，命名为&amp;ldquo;Parameters&amp;rdquo;，点击新建的Parameters，并再次新建一个名称为&amp;ldquo;Application&amp;rdquo;的子键，数据类型为&amp;ldquo;REG_SZ&amp;rdquo;，数值为希望作为服务运行的程序的所在位置，如果你的Windows系统安装在C盘下，那么OE的程序位置就是C:\Program Files\Outlook Express\msimn.exe ，把这个路径添入数值中。&lt;/p&gt;&lt;p&gt;到现在，这个服务已经成功的添加并且设置好了。如果你希望做的更加专业，可以在Mail服务下建立一个名为Description的子键，数据类型同样为REG_SZ，数值可以写一些你对这个服务的描述，这个我们在后面可以看到。&lt;/p&gt;&lt;p&gt;接下来需要对服务做一些额外的设置，在运行中输入&amp;ldquo;Services.msc&amp;rdquo;并回车，在列表中找到我们刚添加的Mail服务，双击打开，来做详细的设置。&lt;/p&gt;&lt;p&gt;在&amp;ldquo;General&amp;rdquo;选项卡上，我们需要设置这个服务的运行方式，可以看见，作为一个服务，有&amp;ldquo;自动（Automatic）&amp;rdquo;，&amp;ldquo;手动（Manual）&amp;rdquo;和&amp;ldquo;禁止（Disabled）&amp;rdquo;三种启动类型，按照需要，我们一般设置成自动就可以了。而在&amp;ldquo;Logon&amp;rdquo;选项卡下可以设置以什么身份运行这个服务，一般可以不用理会，按照默认的设置。&amp;ldquo;Recovery&amp;rdquo;选项卡下则是进行恢复设置的，你可以指定，在服务第一次，第二次和第三次出错之后分别采取什么措施。&amp;ldquo;Dependencies&amp;rdquo;则显示了服务之间的依存关系，可以让你察看这个服务的运行依赖哪些其它服务，以及还有什么服务依赖于这个服务。这后面几个对我们一般用户没有什么意义。经过这些设置，你的服务已经完全可以正常工作了。&lt;/p&gt;&lt;p&gt;注销一下看看。为了让你看清楚，我们先打开OE，这时在任务管理器里，有两个msimn进程，用户名为&amp;ldquo;.com.cn&amp;rdquo;的是我们打开的OE，而用户名为&amp;ldquo;SYSTEM&amp;rdquo;的就是我们添加的服务。&lt;/p&gt;&lt;p&gt;如果你玩够了，不想再运行这个服务，可以直接禁止它在启动的时候运行，或者使用Instsrv.exe程序删除。方法是在命令行下输入&amp;ldquo;c:\instsrv.exe Mail remove&amp;rdquo;，然后回车就可以了。需要注意的是Instsrv.exe这个程序也可以删除某些系统服务，所以使用的时候一定要小心，对于系统服务，安全起见千万不要删除，哪怕你觉得它对你没有用。&lt;br /&gt;Instsrv.exe和Srvany.exe文件下载：&lt;a href="http://files.cnblogs.com/dreamof/srvany-instsrv.rar" target="_blank" style="color: #1d58d1; text-decoration: none;"&gt;http://files.cnblogs.com/dreamof/srvany-instsrv.rar&lt;/a&gt;&lt;/p&gt;&lt;p&gt;信息来源：http://ahwa.blog.51cto.com/18450/24434&lt;/p&gt;&lt;iframe id="baiduSpFrame" border="0" vspace="0" hspace="0" marginWidth="0" marginHeight="0" frameSpacing="0" frameBorder="0" scrolling="no" width="760" height="60" src="http://spcode.baidu.com/spcode/spstyle/style1323.jsp?tn=42041068_sp&amp;ctn=0&amp;styleid=1323"&gt;&lt;/iframe&gt;转自：http://www.cnblogs.com/dreamof/archive/2010/06/30/1768379.html&lt;img src="http://www.cnblogs.com/jyshis/aggbug/2185507.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jyshis/archive/2011/09/22/2185507.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jyshis/archive/2011/09/22/2184699.html</id><title type="text">ASP.NET MVC是否会成为ASP.NET未来主流的UI平台？</title><summary type="text">问题 近几个月来，ASP.NET MVC框架正吸引越来越多的Web开发人员的关注。如今，已经在网上断断续续地看到有些发烧友正试着使用这个框架编写一些DEMO，甚至还简单地结合进ASP.NET AJAX框架相关技术。那么，ASP.NET MVC框架是否发展成替换ASP.NET Web表单框架技术而一跃成为ASP.NET未来主流的UI平台呢？为此，微软的Joe Stagner有一篇简洁的BLOG（地址为：http://www.misfitgeek.com/Will+ASPNET+MVC+Be+The+Main+Web+UI+Platform+For+ASPNET.aspx）对这一问题作了十分清楚的</summary><published>2011-09-22T01:16:00Z</published><updated>2011-09-22T01:16:00Z</updated><author><name>jyshi</name><uri>http://www.cnblogs.com/jyshis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jyshis/archive/2011/09/22/2184699.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jyshis/archive/2011/09/22/2184699.html"/><content type="html">&lt;p&gt;&lt;span class="Apple-style-span" style="color: #2f485a; font-family: Arial, Helvetica, sans-serif, 宋体; font-size: 12px; background-color: #678a9d;"&gt;&lt;span style="word-break: break-all; line-height: normal; font-weight: bold;"&gt;问题&lt;br style="word-break: break-all; line-height: normal;" /&gt;&lt;br style="word-break: break-all; line-height: normal;" /&gt;&lt;/span&gt;&amp;nbsp; 近几个月来，ASP.NET MVC框架正吸引越来越多的Web开发人员的关注。如今，已经在网上断断续续地看到有些发烧友正试着使用这个框架编写一些DEMO，甚至还简单地结合进ASP.NET AJAX框架相关技术。那么，ASP.NET MVC框架是否发展成替换ASP.NET Web表单框架技术而一跃成为ASP.NET未来主流的UI平台呢？为此，微软的&amp;nbsp;Joe Stagner有一篇简洁的BLOG（地址为：http://www.misfitgeek.com/Will+ASPNET+MVC+Be+The+Main+Web+UI+Platform+For+ASPNET.aspx）对这一问题作了十分清楚的回答。&lt;br style="word-break: break-all; line-height: normal;" /&gt;&lt;br style="word-break: break-all; line-height: normal;" /&gt;&lt;span style="word-break: break-all; line-height: normal; font-weight: bold;"&gt;Joe Stagner的解答&lt;/span&gt;&lt;br style="word-break: break-all; line-height: normal;" /&gt;&amp;nbsp;&lt;br style="word-break: break-all; line-height: normal;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="word-break: break-all; line-height: normal !important;"&gt;1.) ASP.NET MVC是否会成为未来ASP.NET框架主流的Web平台？&lt;/strong&gt;&lt;/p&gt;&lt;h2 style="word-break: break-all; line-height: normal;"&gt;&lt;strong style="word-break: break-all; line-height: normal;"&gt;非也！&lt;br style="word-break: break-all; line-height: normal;" /&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;MVC仅仅是微软推荐的一种Web开发框架建议。它绝对不可能替换WebForms。WebForms将继续发展下去，而且将一直是ASP.NET平台主要的UI开发框架。 MVC仅仅是被推荐使用的构建ASP.NET应用程序的一种可能的开发框架。但这样以来，ASP.NET程序员就有了另一种极好的选择方案。具体使用哪一种，这将由他根据具体情况来决定。&lt;/p&gt;&lt;p&gt;从个人的观点讲，我会继续使用WebForms框架，并且在以后的工作中使用MVC框架来取代 WebForms框架的可能性不是很大。&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong style="word-break: break-all; line-height: normal !important;"&gt;2.)&amp;nbsp; WebForms是否会继续发展下去并继续得到微软的支持？&lt;/strong&gt;&lt;/p&gt;&lt;h2 style="word-break: break-all; line-height: normal;"&gt;绝对是这样！&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;事实上，在今年秋天我会出版几个视频BLOG。在这些BLOG中，我将着重讨论&amp;ldquo;新一代&amp;rdquo; WebForms 框架的特征及主要场所。&lt;/p&gt;&lt;p&gt;&lt;strong style="word-break: break-all; line-height: normal !important;"&gt;3.) 哪一个JavaScript.框架将被推荐成为与ASP.NET MVC (ASP.NET AJAX, jQuery, etc.)一起使用？&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Microsoft 支持我们自己的AJAX 客户端库。但是，我经常使用jQuery 以及其他独立的脚本库。但提醒一点的是，Microsoft的AJAX 客户端库会十分友好地与任何 JavaScript库（这些库使用命名空间技术以避免重名冲突所导致的问题）集成到一起。&lt;/p&gt;&lt;p&gt;&lt;strong style="word-break: break-all; line-height: normal !important;"&gt;4.) ASP.NET AJAX框架是否会在ASP.NET MVC框架中得到良好的支持？&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;不知道。因为 ASP.NET AJAX是基于页面回寄框架开发出来的AJAX框架，所以这一点决定了服务器端主要内容仍然是WebForms 框架占主导。但是，至于客户端内容的实现方面，开发人员就可以比较自由进行选择了。&lt;/p&gt;&lt;p&gt;关于&lt;strong style="word-break: break-all; line-height: normal !important;"&gt;SP.NET AJAX框架和ASP.NET MVC框架的结合使用，&lt;/strong&gt;Nikhil 编写了一个简单的 MVC小案例，地址为&lt;br style="word-break: break-all; line-height: normal !important;" /&gt;&lt;a title="http://www.nikhilk.net/Ajax-MVC.aspx" href="http://www.misfitgeek.com/ct.ashx?id=e4a46d86-b618-4850-a617-7d7bbb46877f&amp;amp;url=http%3a%2f%2fwww.nikhilk.net%2fAjax-MVC.aspx" style="word-break: break-all; text-decoration: underline; color: #000000; line-height: normal !important;"&gt;http://www.nikhilk.net/Ajax-MVC.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="word-break: break-all; line-height: normal !important;"&gt;5.) ASP.NET AJAX 和Ajax Control Toolkit 是否会&lt;/strong&gt;&lt;strong style="word-break: break-all; line-height: normal !important;"&gt;继续发展下去并继续得到微软的支持？&lt;/strong&gt;&lt;/p&gt;&lt;h2 style="word-break: break-all; line-height: normal;"&gt;绝对是这样！&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;结论&lt;/p&gt;&lt;p&gt;&lt;strong style="word-break: break-all; line-height: normal !important;"&gt;WEB FORMS框架绝对不会停止发展，相反将继续成为主流的框架并且将不断发展下去！&lt;/strong&gt;&lt;/p&gt;转自：http://developer.51cto.com/art/201109/293504.htm&lt;img src="http://www.cnblogs.com/jyshis/aggbug/2184699.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jyshis/archive/2011/09/22/2184699.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
