<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_itelite博客</title><subtitle type="text">思想有多远,人就能走多远......</subtitle><id>http://feed.cnblogs.com/blog/u/29026/rss</id><updated>2012-03-31T06:23:53Z</updated><author><name>东阁</name><uri>http://www.cnblogs.com/itelite/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/itelite/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/29026/rss"/><entry><id>http://www.cnblogs.com/itelite/archive/2012/03/30/2425227.html</id><title type="text">win7 64位下装office报1402的错误的解决方法</title><summary type="text">查看log：----配置 64 位注册表项... 配置 users\.default。警告 5: 拒绝访问。 在 users\.default\software\microsoft\Windows\CurrentVersion\Run 上设置安全性的错误。 配置 machine\software。警告 1336: 访问控制列表(ACL)结构无效。 在 machine\software\Macrovision 上设置安全性的错误。都是注册表的权限问题。 在网上google到一篇文章，有解决方法，连接如下：http://www.addictivetips.com/windows-tips/fix-</summary><published>2012-03-30T06:29:00Z</published><updated>2012-03-30T06:29:00Z</updated><author><name>东阁</name><uri>http://www.cnblogs.com/itelite/</uri></author><link rel="alternate" href="http://www.cnblogs.com/itelite/archive/2012/03/30/2425227.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/itelite/archive/2012/03/30/2425227.html"/><content type="html">&lt;p&gt;&lt;span style="color: #ff0000; "&gt;查看log：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;----配置 64 位注册表项...&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 配置 users\.default。&lt;/p&gt;&lt;p&gt;警告 5: 拒绝访问。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在 users\.default\software\microsoft\Windows\CurrentVersion\Run 上设置安全性的错误。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 配置 machine\software。&lt;/p&gt;&lt;p&gt;警告 1336: 访问控制列表(ACL)结构无效。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在 machine\software\Macrovision 上设置安全性的错误。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;都是注册表的权限问题。 在网上google到一篇文章，有解决方法，连接如下：&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.addictivetips.com/windows-tips/fix-office-2010-install-error-1402-setup-cannot-open-registry-key/" style="color: #ca0000; text-decoration: none; "&gt;http://www.addictivetips.com/windows-tips/fix-office-2010-install-error-1402-setup-cannot-open-registry-key/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;上面有两种解决方法。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #ff0000; "&gt;方法一：执行如下命令：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;C: &amp;gt;secedit /configure /cfg%windir%\inf\defltbase.inf /db defltbase.sdb /verbose&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;在执行该命令之前，最好把防火墙，杀毒软件停到。这种方法，我测试了一下，没有效果。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #ff0000; "&gt;方法二： 使用subinacl工具赋权&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;从微软下载 SubInACL工具，下载地址：&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=23510" style="color: #ca0000; text-decoration: none; "&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=23510&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;SubInACL is acommand-line tool that enables administrators to obtain security informationabout files, registry keys, and services, and transfer this information fromuser to user, from local or global group to group, and from domain to domain.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; "&gt;该软件默认的安装目录是：&lt;/span&gt;C:\Program Files (x86)\Windows ResourceKits\Tools&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; "&gt;将该目录下的SUBINACL.EXE拷贝到 /Windows/System32 目录。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; "&gt;新建文件：grant.cmd,内容如下：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;subinacl /subkeyreg HKEY_LOCAL_MACHINE/setowner=administrators&lt;/p&gt;&lt;p&gt;subinacl /subkeyreg HKEY_CURRENT_USER/setowner=administrators&lt;/p&gt;&lt;p&gt;subinacl /subkeyreg HKEY_CLASSES_ROOT/setowner=administrators&lt;/p&gt;&lt;p&gt;subinacl /subkeyreg HKEY_LOCAL_MACHINE/grant=administrators=f /grant=system=f&lt;/p&gt;&lt;p&gt;subinacl /subkeyreg HKEY_CURRENT_USER/grant=administrators=f /grant=system=f&lt;/p&gt;&lt;p&gt;subinacl /subkeyreg HKEY_CLASSES_ROOT/grant=administrators=f /grant=system=f&lt;/p&gt;&lt;p&gt;cls&lt;/p&gt;&lt;p&gt;Exit&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; "&gt;在该文件上右击，用管理员执行。 但等待1个多小时。等操作完成，就可以顺利安装了。&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/itelite/aggbug/2425227.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/itelite/archive/2012/03/30/2425227.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/itelite/archive/2012/03/28/2421655.html</id><title type="text">C#不同操作系统下,界面大小不一的原因</title><summary type="text">在不同的操作系统版本或语言版本之间，系统的默认字体是不同的。在DesignTime，系统会根据AutoScaleMode的设置不同，将一个参考值赋值给Form的AutoScaleDimensions属性。this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);&amp;nbsp;Note: 当前系统为英文。因此，当前字体高度为13，宽度为6 在运行时，CurrentAutoScaleDimensions属性会提取当前系统的相关设置。生成另外一个计算值。AutoScaleFactor属性表现了两个值的比值，作为下一步缩放的缩放因子</summary><published>2012-03-28T09:36:00Z</published><updated>2012-03-28T09:36:00Z</updated><author><name>东阁</name><uri>http://www.cnblogs.com/itelite/</uri></author><link rel="alternate" href="http://www.cnblogs.com/itelite/archive/2012/03/28/2421655.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/itelite/archive/2012/03/28/2421655.html"/><content type="html">&lt;span style="font-family: simsun; line-height: 23px; text-align: left; "&gt;在不同的操作系统版本或语言版本之间，系统的默认字体是不同的。&lt;/span&gt;&lt;br style="font-family: simsun; line-height: 23px; text-align: left; " /&gt;&lt;span style="font-family: simsun; line-height: 23px; text-align: left; "&gt;在DesignTime，系统会根据AutoScaleMode的设置不同，将一个参考值赋值给Form的AutoScaleDimensions属性。&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: simsun; line-height: 23px; text-align: left; " /&gt;&lt;span style="font-family: simsun; line-height: 23px; text-align: left; "&gt;this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);&amp;amp;nbsp;Note: 当前系统为英文。因此，当前字体高度为13，宽度为6 &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: simsun; line-height: 23px; text-align: left; " /&gt;&lt;span style="font-family: simsun; line-height: 23px; text-align: left; "&gt;在运行时，CurrentAutoScaleDimensions属性会提取当前系统的相关设置。生成另外一个计算值。AutoScaleFactor属性表现了两个值的比值，作为下一步缩放的缩放因子。&lt;/span&gt;&lt;br style="font-family: simsun; line-height: 23px; text-align: left; " /&gt;&lt;span style="font-family: simsun; line-height: 23px; text-align: left; "&gt;比如，在日文系统下运行时，CurrenAutoScaleDimensions为（6f, 12f)。AutoScaleFactor为（1f, 0.9xxxf).&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: simsun; line-height: 23px; text-align: left; " /&gt;&lt;span style="font-family: simsun; line-height: 23px; text-align: left; "&gt;System.Win.Forms.ContainerControl会在OnLayout(还包括一堆其它的事件中)中对调用自己的 PerformAutoScale方法，其中对自己和它子孙调用Scale方法，并将AutoScaleFactor传入。从而实现调整他们的位置和大小，以适应当前操作系统的设置。&lt;/span&gt;&lt;img src="http://www.cnblogs.com/itelite/aggbug/2421655.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/itelite/archive/2012/03/28/2421655.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/itelite/archive/2012/03/21/2410291.html</id><title type="text">[转]软件工程七大原理</title><summary type="text">软件工程七大原理：一、按软件生存周期分阶段制定计划并认真实施；二、逐阶段进行确认；三、坚持严格地产品确认；四、使用现代程序设计技术；五、明确责任；六、用人少而精；七、不断改进开发过程。 这是美国TRW公司的B.W.Boechm在1983年总结了该公司在12年内、总共花了15000人年、先后开发五代指挥控制软件的经验，得出了以上7条原则。</summary><published>2012-03-21T09:42:00Z</published><updated>2012-03-21T09:42:00Z</updated><author><name>东阁</name><uri>http://www.cnblogs.com/itelite/</uri></author><link rel="alternate" href="http://www.cnblogs.com/itelite/archive/2012/03/21/2410291.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/itelite/archive/2012/03/21/2410291.html"/><content type="html">&lt;p&gt;软件工程七大原理：&lt;/p&gt;&lt;p&gt;一、按软件生存周期分阶段制定计划并认真实施；&lt;/p&gt;&lt;p&gt;二、逐阶段进行确认；&lt;/p&gt;&lt;p&gt;三、坚持严格地产品确认；&lt;/p&gt;&lt;p&gt;四、使用现代程序设计技术；&lt;/p&gt;&lt;p&gt;五、明确责任；&lt;/p&gt;&lt;p&gt;六、用人少而精；&lt;/p&gt;&lt;p&gt;七、不断改进开发过程。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这是美国TRW公司的B.W.Boechm在1983年总结了该公司在12年内、总共花了15000人年、先后开发五代指挥控制软件的经验，得出了以上7条原则。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/itelite/aggbug/2410291.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/itelite/archive/2012/03/21/2410291.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/itelite/archive/2012/03/06/2382372.html</id><title type="text">Log4Net使用指南</title><summary type="text">声明：本文内容主要译自Nauman Leghari的Using log4net，亦加入了个人的一点心得(节3.1.4)。请在这里下载示例代码1简介1.1Log4net的优点：几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后，就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。经验表明，日志记录往往是软件开发周期中的重要组成部分。它具有以下几个优点：它可以提供应用程序运行时的精确环境，可供开发人员尽快找到应用程序中的Bug；一旦在程序中加入了Log输出代码，程序运行过程中就能生成并输出日志信息而无需人工干预。另外，日志信</summary><published>2012-03-06T09:45:00Z</published><updated>2012-03-06T09:45:00Z</updated><author><name>东阁</name><uri>http://www.cnblogs.com/itelite/</uri></author><link rel="alternate" href="http://www.cnblogs.com/itelite/archive/2012/03/06/2382372.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/itelite/archive/2012/03/06/2382372.html"/><content type="html">&lt;div id="cnblogs_post_body" style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff; "&gt;声明：本文内容主要译自Nauman Leghari的Using log4net，亦加入了个人的一点心得(节3.1.4)。&lt;br /&gt;请在这里下载&lt;a href="http://files.cnblogs.com/dragon/Log4NetTester.rar" style="color: navy; text-decoration: none; "&gt;示例代码&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;1&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;简介&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;1.1&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;Log4net&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的优点：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;几乎所有的大型应用都会有自己的用于跟踪调试的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;API&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;。因为一旦程序被部署以后，就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;经验表明，日志记录往往是软件开发周期中的重要组成部分。它具有以下几个优点：它可以提供应用程序运行时的精确环境，可供开发人员尽快找到应用程序中的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Bug&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;；一旦在程序中加入了&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Log&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;输出代码，程序运行过程中就能生成并输出日志信息而无需人工干预。另外，日志信息可以输出到不同的地方（控制台，文件等）以备以后研究之用。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;就是为这样一个目的设计的，用于&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;.NET&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;开发环境的日志记录包。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;1.2&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;Log4net&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的安装：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;用户可以从&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&lt;a href="http://logging.apache.org/log4net/" style="color: navy; text-decoration: none; "&gt;&lt;span style="line-height: 1.5; color: windowtext; "&gt;http://logging.apache.org/log4net/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;下载&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的源代码。解压软件包后，在解压的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;src&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;目录下将&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net.sln&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;载入&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Visual Studio .NET&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;，编译后可以得到&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net.dll&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;。用户要在自己的程序里加入日志功能，只需将&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net.dll&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;引入工程即可。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;2&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;Log4net&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的结构&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;log4net&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;有四种主要的组件，分别是&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;（记录器）&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;, Repository&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;（库）&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;, Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;（附着器）以及&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;Layout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;（布局）&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;2.1&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;a name="Logger" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.cnblogs.com/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;amp;file=anchor.gif); background-repeat: no-repeat no-repeat; "&gt;&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;2.1.1&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;接口&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;是应用程序需要交互的主要组件，它用来产生日志消息。产生的日志消息并不直接显示，还要预先经过&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Layout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的格式化处理后才会输出。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;提供了多种方式来记录一个日志消息，你可以在你的应用程序里创建多个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;，每个实例化的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象都被&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架作为命名实体&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;(named entity)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;来维护。这意味着为了重用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象，你不必将它在不同的类或对象间传递，只需要用它的名字为参数调用就可以了。&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架使用继承体系，继承体系类似于&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;.NET&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;中的名字空间。也就是说，如果有两个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;logger,&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;分别被定义为&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;a.b.c&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;和&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;a.b&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;，那么我们说&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;a.b&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;是&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;a.b.c&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的祖先。每一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;都继承了祖先的属性&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架定义了一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ILog&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;接口，所有的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;类都必须实现这个接口。如果你想实现一个自定义的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;，你必须首先实现这个接口。你可以参考在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;/extension&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;目录下的几个例子。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;ILog&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;接口的定义如下：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;public interface ILog&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;void Debug(object message);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;void Info(object message);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;void Warn(object message);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;void Error(object message);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;void Fatal(object message);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;//&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;以上的每一个方法都有一个重载的方法，用来支持异常处理。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;//&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;每一个重载方法都如下所示，有一个异常类型的附加参数。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;void Debug(object message, Exception ex);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;// ...&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;//Boolean&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;属性用来检查&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的日志级别&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;//&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;（我们马上会在后面看到日志级别）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;bool isDebugEnabled;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;bool isInfoEnabled;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;//&amp;#8230;&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;其他方法对应的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Boolean&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;属性&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架定义了一个叫做&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;LogManager&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的类，用来管理所有的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象。它有一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;GetLogger()&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;静态方法，用我们提供的名字参数来检索已经存在的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象。如果框架里不存在该&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象，它也会为我们创建一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象。代码如下所示：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;log4net.ILog log = log4net.LogManager.GetLogger("logger-name");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;通常来说，我们会以类（&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;class&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;）的类型（&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;type&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;）为参数来调用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;GetLogger()&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;，以便跟踪我们正在进行日志记录的类。传递的类&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;(class)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的类型&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;(type)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;可以用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;typeof(Classname)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;方法来获得，或者可以用如下的反射方法来获得：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;System.Reflection.MethodBase.GetCurrentMethod().DeclaringType&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;尽管符号长了一些，但是后者可以用于一些场合，比如获取调用方法的类&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;(class)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的类型&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;(type)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;2.1.2&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;日志的级别&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;正如你在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ILog&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的接口中看到的一样，有五种不同的方法可以跟踪一个应用程序。事实上，这五种方法是运作在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象设置的不同日志优先级别上。这几种不同的级别是作为常量定义在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net.spi.Level&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;类中。你可以在程序中使用任何一种方法。但是在最后的发布中你也许不想让所有的代码来浪费你的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;CPU&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;周期，因此，框架提供了&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;7&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;种级别和相应的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Boolean&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;属性来控制日志记录的类型。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Level&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;有以下几种取值&lt;/span&gt;&lt;/p&gt;&lt;table cellpadding="0" border="1" style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: 48.75pt; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="69" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 51.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;级别&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="118" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 88.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;允许的方法&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="154" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 115.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;Boolean&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;属性&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="81" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 60.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;优先级别&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="69" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 51.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;OFF&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="118" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 88.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="154" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 115.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="81" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 60.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;Highest&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="69" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 51.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;FATAL&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="118" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 88.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;void Fatal(...);&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="154" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 115.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;bool IsFatalEnabled;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="81" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 60.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="69" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 51.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;RROR&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="118" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 88.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;void Error(...);&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="154" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 115.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;bool IsErrorEnabled;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="81" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 60.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="69" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 51.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;WARN&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="118" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 88.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;void Warn(...);&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="154" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 115.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;bool IsWarnEnabled;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="81" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 60.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="69" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 51.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;INFO&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="118" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 88.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;void Info(...);&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="154" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 115.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;bool IsInfoEnabled;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="81" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 60.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="69" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 51.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;DEBUG&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="118" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 88.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;void Debug(...);&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="154" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 115.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;bool IsDebugEnabled;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="81" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 60.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="69" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 51.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;ALL&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="118" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 88.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="154" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 115.5pt; "&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="81" style="font-size: 12px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-collapse: collapse; padding-top: 1.5pt; padding-right: 1.5pt; padding-bottom: 1.5pt; padding-left: 1.5pt; width: 60.75pt; "&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;Lowest&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p align="center" style="line-height: 1.4; margin-left: 42pt; text-indent: 21pt; text-align: center; "&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;表&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;1&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的日志级别&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架里，通过设置配置文件，每个日志对象都被分配了一个日志优先级别。如果没有给一个日志对象显式地分配一个级别，那么该对象会试图从他的祖先继承一个级别值。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;ILog&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;接口的每个方法都有一个预先定义好了的级别值。正如你在表&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;1&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;看到的，&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ILog&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Inof()&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;方法具有&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;INFO&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;级别。同样的，以此类推，&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Error()&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;方法具有&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ERROR&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;级别。当我们使用以上的任何一种方法时，&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架会检查日志对象&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的级别和方法的级别。只有当方法的级别高于日志级别时，日志请求才会被接受并执行。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;举例说明，当你创建了一个日志对象，并且把他的级别设置为&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;INFO&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;。于是框架会设置日志的每个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Boolean&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;属性。当你调用相应的日志方法时，框架会检查相应的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Boolean&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;属性，以决定该方法能不能执行。如下的代码：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Logger.Info("message");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Logger.Debug("message");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Logger.Warn("message");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对于第一种方法，&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Info()&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的级别等与日志的级别（&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;INFO&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;），因此日志请求会被传递，我们可以得到输出结果&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;#8221;message&amp;#8221;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对于第二种方法，&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Debug()&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的级别低于日志对象&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的日志级别&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;(INFO)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;，因此，日志请求被拒绝了，我们得不到任何输出。同样的，针对第三行语句，我们可以很容易得出结论。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;在表&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;1&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;中有两个特殊的级别：&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ALL&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;和&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;OFF&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;。&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ALL&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;表示允许所有的日志请求。&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;OFF&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;是拒绝所有的请求。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;你也可以显式地检查&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Boolean&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;属性，如下所示：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;if (logger.IsDebugEnabled)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Logger.Debug("message");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;2.2&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;Repository&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Repository&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;主要用于负责日志对象组织结构的维护。在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的以前版本中，框架仅支持分等级的组织结构&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;(hierarchical organization)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;。这种等级结构本质上是库的一个实现，并且定义在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Repository.Hierarchy&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;名字空间中。要实现一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Repository&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;，需要实现&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Repository.ILoggerRepository&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;接口。但是通常并不是直接实现该接口，而是以&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Repository.LoggerRepositorySkeleton&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;为基类继承。体系库&lt;/span&gt;&amp;nbsp;&lt;span style="line-height: 1.5; "&gt;(hierarchical repository )&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;则由&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Repository.Hierarchy.Hierarchy&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;类实现。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;如果你是个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架的使用者，而非扩展者，那么你几乎不会在你的代码里用到&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Repository&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的类。相反的，你需要用到&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;LogManager&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;类来自动管理库和日志对象。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;2.3&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;a name="Appender" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.cnblogs.com/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;amp;file=anchor.gif); background-repeat: no-repeat no-repeat; "&gt;&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;一个好的日志框架应该能够产生多目的地的输出。比如说输出到控制台或保存到一个日志文件。&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;能够很好的满足这些要求。它使用一个叫做&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的组件来定义输出介质。正如名字所示，这些组件把它们附加到&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;日志组件上并将输出传递到输出流中。你可以把多个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;组件附加到一个日志对象上。&lt;/span&gt;&amp;nbsp;&lt;span style="line-height: 1.5; "&gt;Log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架提供了几个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;组件。关于&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;提供的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;组件的完整列表可以在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架的帮助手册中找到。有了这些现成的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;组件，一般来说你没有必要再自己编写了。但是如果你愿意，可以从&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Appender.AppenderSkeleton&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;类继承。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;2.4&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;Appender Filters&lt;a name="Filters" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.cnblogs.com/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;amp;file=anchor.gif); background-repeat: no-repeat no-repeat; "&gt;&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象缺省地将所有的日志事件传递到输出流。&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的过滤器&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;(Appender Filters)&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;可以按照不同的标准过滤日志事件。在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Filter&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的名字空间下已经有几个预定义的过滤器。使用这些过滤器，你可以按照日志级别范围过滤日志事件，或者按照某个特殊的字符串进行过滤。你可以在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;API&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的帮助文件中发现更多关于过滤器的信息。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;2.5&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;Layout&lt;a name="Layout" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.cnblogs.com/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;amp;file=anchor.gif); background-repeat: no-repeat no-repeat; "&gt;&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Layout&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;组件用于向用户显示最后经过格式化的输出信息。输出信息可以以多种格式显示，主要依赖于我们采用的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Layout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;组件类型。可以是线性的或一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;XML&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;文件。&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Layout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;组件和一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;组件一起工作。&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;API&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;帮助手册中有关于不同&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Layout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;组件的列表。一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象，只能对应一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Layout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象。要实现你自己的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Layout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;类，你需要从&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Layout.LayoutSkeleton&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;类继承，它实现了&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ILayout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;接口。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;3&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;在程序中使用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;在开始对你的程序进行日志记录前，需要先启动&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;引擎。这意味着你需要先配置前面提到的三种组件。你可以用两种方法来设定配置：在单独的文件中设定配置或在代码中定义配置。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;因为下面几种原因，推荐在一个单独的文件中定义配置：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: Wingdings; "&gt;&lt;span style="line-height: 1.5; "&gt;l&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;你不需要重新编译源代码就能改变配置；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: Wingdings; "&gt;&lt;span style="line-height: 1.5; "&gt;l&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;你可以在程序正运行的时候就改变配置。这一点在一些&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;WEB&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;程序和远程过程调用的程序中有时很重要；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;考虑到第一种方法的重要性，我们先看看怎样在文件中设定配置信息。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;3.1&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;定义配置文件&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;配置信息可以放在如下几种形式文件的一种中。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;在程序的配置文件里，如&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;AssemblyName.config&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;或&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;web.config.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;在你自己的文件里。文件名可以是任何你想要的名字，如&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;AppName.exe.xyz&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;等&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架会在相对于&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;属性定义的目录路径下查找配置文件。框架在配置文件里要查找的唯一标识是&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;log4net&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签。一个完整的配置文件的例子如下：&lt;/span&gt;&lt;/p&gt;&lt;p align="left" style="line-height: 1.4; text-align: left; "&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;configSections&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;section name="log4net"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;type="log4net.Config.Log4NetConfigurationSectionHandler,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&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;log4net-net-1.0"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;/configSections&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;log4net&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;root&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;level value="WARN" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;appender-ref ref="LogFileAppender" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;appender-ref ref="ConsoleAppender" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;/root&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;logger name="testApp.Logging"&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;level value="DEBUG"/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;/logger&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;appender name="LogFileAppender"&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&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;type="log4net.Appender.FileAppender" &amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="File" value="log-file.txt" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;lt;param name="AppendToFile" value="true" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;layout type="log4net.Layout.PatternLayout"&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="Header" value="[Header]\r\n"/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="Footer" value="[Footer]\r\n"/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="ConversionPattern"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&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;value="%d [%t] %-5p %c [%x]&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;- %m%n"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;/layout&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;filter type="log4net.Filter.LevelRangeFilter"&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="LevelMin" value="DEBUG" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="LevelMax" value="WARN" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;/filter&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;/appender&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;appender name="ConsoleAppender"&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&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;&lt;/span&gt;type="log4net.Appender.ConsoleAppender" &amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;layout type="log4net.Layout.PatternLayout"&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="ConversionPattern"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&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;value="%d [%t] %-5p %c [%x] - %m%n"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;/layout&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;lt;/appender&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;/log4net&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;你可以直接将上面的文本拷贝到任何程序中使用，但是最好还是能够理解配置文件是怎样构成的。&lt;/span&gt;&amp;nbsp;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;只有当你需要在应用程序配置文件中使用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;配置时，才需要在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;configSection&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签中加入&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;section&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;配置节点入口。对于其他的单独文件，只有&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;log4net&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签内的文本才是必需的，这些标签的顺序并不是固定的。下面我们依次讲解各个标签内文本的含义：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;3.1.1&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;root&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;root&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;level value="WARN" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;appender-ref ref="LogFileAppender" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;appender-ref ref="ConsoleAppender" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;/root&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;在框架的体系里，所有的日志对象都是根日志&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;(root logger)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的后代。&lt;/span&gt;&amp;nbsp;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;因此如果一个日志对象没有在配置文件里显式定义，则框架使用根日志中定义的属性。在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;root&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签里，可以定义&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;level&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;级别值和&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的列表。如果没有定义&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;LEVEL&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的值，则缺省为&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;DEBUG&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;。可以通过&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;appender-ref&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签定义日志对象使用的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象。&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;appender-ref&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;声明了在其他地方定义的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象的一个引用。在一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象中的设置会覆盖根日志的设置。而对&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;属性来说，子日志对象则会继承父日志对象的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;列表。这种缺省的行为方式也可以通过显式地设定&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;logger&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;additivity&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;属性为&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;false&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;而改变。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;logger name="testApp.Logging" additivity="false"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;/logger&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Additivity&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的值缺省是&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;true.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;3.1.2&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;Logger&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;logger name="testApp.Logging"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;level value="DEBUG"/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;/logger&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;logger&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;元素预定义了一个具体日志对象的设置。然后通过调用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;LogManager.GetLogger(&amp;#8220;testAPP.Logging&amp;#8221;)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;函数，你可以检索具有该名字的日志。如果&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;LogManager.GetLogger(&amp;#8230;)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;打开的不是预定义的日志对象，则该日志对象会继承根日志对象的属性。知道了这一点，我们可以说，其实&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;logger&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签并不是必须的。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;3.1.3&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;appender&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;appender name="LogFileAppender"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;type="log4net.Appender.FileAppender" &amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="File" value="log-file.txt" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="AppendToFile" value="true" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;layout type="log4net.Layout.PatternLayout"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="Header" value="[Header]\r\n" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="Footer" value="[Footer]\r\n"/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="ConversionPattern"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;value="%d [%t] %-5p %c - %m%n"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;/layout&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;filter type="log4net.Filter.LevelRangeFilter"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="LevelMin" value="DEBUG" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;param name="LevelMax" value="WARN" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;/filter&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;/appender&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;root&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签或单个的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;logger&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签里的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象可以用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;appender&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签定义。&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;appender&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签的基本形式如上面所示。它定义了&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的名字和类型。&lt;/span&gt;&amp;nbsp;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;另外比较重要的是&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;appender&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签内部的其他标签。不同的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;有不同的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;param&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签。在这里，为了使用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;FileAppender,&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;你需要一个文件名作为参数。另外还需要一个在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;appender&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签内部定义一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Layout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象。&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Layout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象定义在它自己的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;layout&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签内。&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;layout&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;type&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;属性定义了&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Layout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的类型&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;(&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;在本例里是&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;PatternLayout)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;，同时也确定了需要提供的参数值。&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Header&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;和&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Footer&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签提供了一个日志会话&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;(logging session)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;开始和结束时输出的文字。有关每种&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的具体配置的例子，可以在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net\doc\manual\example-config-appender.html&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;中得到。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;3.1.4&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Layout.PatternLayout&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;中的转换模式&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;(ConversionPattern)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;%m(message):&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;输出的日志消息，如&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ILog.Debug(&amp;#8230;)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;输出的一条消息&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;%n(new line):&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;换行&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;%d(datetime):&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;输出当前语句运行的时刻&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;%r(run time):&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;输出程序从运行到执行到当前语句时消耗的毫秒数&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;%t(thread id):&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;当前语句所在的线程&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ID&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;%p(priority):&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;日志的当前优先级别，即&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;DEBUG&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;、&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;INFO&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;、&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;WARN&amp;#8230;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;等&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;%c(class):&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;当前日志对象的名称，例如：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;模式字符串为：&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;%-10c&amp;nbsp;-%m%n&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;代码为：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;ILog log=LogManager.GetLogger(&amp;#8220;Exam.Log&amp;#8221;);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;log.Debug(&amp;#8220;Hello&amp;#8221;);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;则输出为下面的形式：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Exam.Log&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;- Hello&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;%L&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;：输出语句所在的行号&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;%F&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;：输出语句所在的文件名&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;%-&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;数字：表示该项的最小长度，如果不够，则用空格填充&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;例如，转换模式为&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;%r [%t]%-5p %c - %m%n&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;PatternLayout&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;将生成类似于以下内容的输出：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;176 [main] INFO&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;org.foo.Bar - Located nearest gas station.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;3.1.5&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;filter&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;最后，让我们看看在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;元素里的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;lt;filter&amp;gt;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;标签。它定义了应用到&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象的过滤器。本例中，我们使用了&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;LevelRangeFilter&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;过滤器&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;,&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;它可以只记录&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;LevelMin&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;和&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;LevelMax&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;参数指定的日志级别之间的日志事件。可以在一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;上定义多个过滤器（&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Filter&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;）&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;,&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;这些过滤器将会按照它们定义的顺序对日志事件进行过滤。其他过滤器的有关信息可以在&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;SDK&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;文档中找到。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;3.2&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;使用配置文件&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;3.2.1&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;关联配置文件&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;当我们创建了上面的配置文件后，我们接下来需要把它和我们的应用联系起来。缺省的，每个独立的可执行程序集都会定义它自己的配置。&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架使用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Config.DOMConfiguratorAttribute&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;在程序集的级别上定义配置文件。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;例如：可以在项目的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;AssemblyInfo.cs&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;文件里添加以下的语句&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;[assembly:log4net.Config.DOMConfigurator(ConfigFile="filename",&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;ConfigFileExtension="ext",Watch=true/false)]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: Wingdings; "&gt;&lt;span style="line-height: 1.5; "&gt;l&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;ConfigFile:&lt;/span&gt;&lt;/strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;指出了我们的配置文件的路径及文件名，包括扩展名。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: Wingdings; "&gt;&lt;span style="line-height: 1.5; "&gt;l&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;ConfigFileExtension:&lt;/span&gt;&lt;/strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;如果我们对被编译程序的程序集使用了不同的文件扩展名，那么我们需要定义这个属性，缺省的，程序集的配置文件扩展名为&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;#8221;config&amp;#8221;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: Wingdings; "&gt;&lt;span style="line-height: 1.5; "&gt;l&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;Watch (Boolean&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;属性&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;):&lt;/span&gt;&lt;/strong&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架用这个属性来确定是否需要在运行时监视文件的改变。如果这个属性为&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;true,&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;那么&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;FileSystemWatcher&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;将会被用来监视文件的改变，重命名，删除等事件。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;其中：&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ConfigFile&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;和&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ConfigFileExtension&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;属性不能同时使用，&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ConfigFile&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;指出了配置文件的名字，例如，&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ConfigFile=&amp;#8221;Config.txt&amp;#8221;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;ConfigFileExtension&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;则是指明了和可执行程序集同名的配置文件的扩展名，例如，应用程序的名称是&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;#8221;test.exe&amp;#8221;,ConfigFileExtension=&amp;#8221;txt&amp;#8221;,&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;则配置文件就应该是&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;&amp;#8221;test.exe.txt&amp;#8221;&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;也可以不带参数应用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;DOMConfiguratio():&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;[assembly: log4net.Config.DOMConfigurator()]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;也可以在程序代码中用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;DOMConfigurator&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;类打开配置文件。类的构造函数需要一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;FileInfo&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象作参数，以指出要打开的配置文件名。&lt;/span&gt;&amp;nbsp;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;这个方法和前面在程序集里设置属性打开一个配置文件的效果是一样的。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Config.DOMConfigurator.Configure(&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;new FileInfo("TestLogger.Exe.Config"));&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;DOMConfigurator&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;类还有一个方法&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ConfigureAndWatch(..),&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;用来配置框架并检测文件的变化。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;以上的步骤总结了和配置相关的各个方面，下面我们将分两步来使用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;logger&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;3.2.2&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;创建或获取日志对象&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;日志对象会使用在配置文件里定义的属性。如果某个日志对象没有事先在配置文件里定义，那么框架会根据继承结构获取祖先节点的属性，最终的，会从根日志获取属性。如下所示：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;Log4net.ILog log = Log4net.LogManager.GetLogger("MyLogger");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;3.2.3&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;输出日志信息&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;可以使用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ILog&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的几种方法输出日志信息。你也可以在调用某方法前先检查&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;IsXXXEnabled&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;布尔变量，再决定是否调用输出日志信息的函数，这样可以提高程序的性能。因为框架在调用如&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ILog.Debug(&amp;#8230;)&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;这样的函数时，也会先判断是否满足&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Level&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;日志级别条件。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;if (log.IsDebugEnabled) log.Debug("message");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;if (log.IsInfoEnabled) log.Info("message);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;3.3&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;在程序中配置&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;除了前面讲的用一个配置文件来配置&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;以外，还可以在程序中用代码来配置&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架。如下面的例子&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;//&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;和&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;PatternLayout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;一起使用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;FileAppender&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Config.BasicConfigurator.Configure(&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;new log4net.Appender.FileAppender(&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;new log4net.Layout.PatternLayout("%d&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;[%t]%-5p %c [%x] - %m%n"),"testfile.log"));&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;// using a FileAppender with an XMLLayout&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Config.BasicConfigurator.Configure(&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;new log4net.Appender.FileAppender(&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;new log4net.Layout.XMLLayout(),"testfile.xml"));&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;// using a ConsoleAppender with a PatternLayout&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Config.BasicConfigurator.Configure(&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;new log4net.Appender.ConsoleAppender(&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;new log4net.Layout.PatternLayout("%d&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;[%t] %-5p %c - %m%n")));&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;// using a ConsoleAppender with a SimpleLayout&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Config.BasicConfigurator.Configure(&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;new log4net.Appender.ConsoleAppender(new&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;log4net.Layout.SimpleLayout()));&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;尽管这里用代码配置&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;也很方便，但是你却不能分别配置每个日志对象。所有的这些配置都是被应用到根日志上的。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Config.BasicConfigurator&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;类使用静态方法&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Configure&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;设置一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象。而&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Appender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;的构造函数又会相应的要求&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Layout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象。你也可以不带参数直接调用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;BasicConfigurator.Configure()&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;，它会使用一个缺省的&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;PatternLayout&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;对象，在一个&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;ConsoleAppender&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;中输出信息。如下所示：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;log4net.Config.BasicConfigurator.Configure();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;在输出时会显示如下格式的信息：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;0 [1688] DEBUG log1 A&amp;nbsp;B C - Test&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; "&gt;20 [1688] INFO log1 A&amp;nbsp;B C - Test&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;当&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;框架被配置好以后，就可以如前所述使用日志功能了。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; "&gt;&lt;span style="line-height: 1.5; "&gt;4&lt;span style="line-height: normal; font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; "&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&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;总结&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;使用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;可以很方便地为应用添加日志功能。应用&lt;/span&gt;&lt;span style="line-height: 1.5; "&gt;Log4net&lt;/span&gt;&lt;span style="line-height: 1.5; font-family: 宋体; "&gt;，使用者可以很精确地控制日志信息的输出，减少了多余信息，提高了日志记录性能。同时，通过外部配置文件，用户可以不用重新编译程序就能改变应用的日志行为，使得用户可以根据情况灵活地选择要记录的信息。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div id="blog_post_info_block" style="margin-top: 20px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff; "&gt;&lt;div id="BlogPostCategory"&gt;分类:&amp;nbsp;&lt;a href="http://www.cnblogs.com/dragon/category/11625.html" style="color: navy; text-decoration: none; "&gt;技术研究&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/itelite/aggbug/2382372.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/itelite/archive/2012/03/06/2382372.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/itelite/archive/2012/03/06/2381468.html</id><title type="text">解决.svc 无法解析</title><summary type="text">aspnet_regiis -i &amp; ServiceModelReg -iC:\Program Files\Microsoft Visual Studio 10.0\VC&gt;aspnet_regiis -iStart installing ASP.NET (4.0.30319).....................Finished installing ASP.NET (4.0.30319).C:\Program Files\Microsoft Visual Studio 10.0\VC&gt;ServiceModelReg -rMicrosoft (R) WCF/WF reg</summary><published>2012-03-06T02:44:00Z</published><updated>2012-03-06T02:44:00Z</updated><author><name>东阁</name><uri>http://www.cnblogs.com/itelite/</uri></author><link rel="alternate" href="http://www.cnblogs.com/itelite/archive/2012/03/06/2381468.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/itelite/archive/2012/03/06/2381468.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; line-height: 18px; text-align: left; background-color: #ffffff; color: red; "&gt;aspnet_regiis -i &amp;amp; ServiceModelReg -i&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;C:\Program Files\Microsoft Visual Studio 10.0\VC&amp;gt;aspnet_regiis -i&lt;/div&gt;&lt;div&gt;Start installing ASP.NET (4.0.30319).&lt;/div&gt;&lt;div&gt;....................&lt;/div&gt;&lt;div&gt;Finished installing ASP.NET (4.0.30319).&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;C:\Program Files\Microsoft Visual Studio 10.0\VC&amp;gt;ServiceModelReg -r&lt;/div&gt;&lt;div&gt;Microsoft (R) WCF/WF registration tool version 4.0.0.0&lt;/div&gt;&lt;div&gt;Copyright (c) Microsoft Corporation. &amp;nbsp;All rights reserved.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Administration utility that manages the installation and uninstallation of&lt;/div&gt;&lt;div&gt;WCF and WF components on a single machine.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;[SC] ChangeServiceConfig2 成功&lt;/div&gt;&lt;div&gt;[SC] ChangeServiceConfig2 成功&lt;/div&gt;&lt;div&gt;[SC] ChangeServiceConfig2 成功&lt;/div&gt;&lt;div&gt;[SC] ChangeServiceConfig2 成功&lt;/div&gt;&lt;div&gt;[SC] ChangeServiceConfig2 成功&lt;/div&gt;&lt;div&gt;[SC] ChangeServiceConfig2 成功&lt;/div&gt;&lt;div&gt;[SC] ChangeServiceConfig2 成功&lt;/div&gt;&lt;div&gt;[SC] ChangeServiceConfig2 成功&lt;/div&gt;&lt;div&gt;[Warning]The HTTP namespace reservation already exists.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;C:\Program Files\Microsoft Visual Studio 10.0\VC&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;直接搞定&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/itelite/aggbug/2381468.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/itelite/archive/2012/03/06/2381468.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/itelite/archive/2012/03/05/2380762.html</id><title type="text">采用nettcp绑定的wcf宿主到iis7</title><summary type="text">也许事情太杂了记忆力明显下降，做过的东西很容易忘记。上次成功将采用nettcp绑定方式的wcf部署到iis7，重新来做已经忘得差不多了。重新在网上搜索相关资料，进行记录以备再用。一、准备：首先iis必须是7.0或更高，同时需要安装需要在“打开或关闭Windows功能”中安装Microsoft .NET Framework 3.5.1中的Windows Communication Foundation HTTP Activation、Windows Communication Foundation Non-HTTP Activation和Web管理工具-IIS6管理兼容性-IIS元数据库和IIS</summary><published>2012-03-05T09:37:00Z</published><updated>2012-03-05T09:37:00Z</updated><author><name>东阁</name><uri>http://www.cnblogs.com/itelite/</uri></author><link rel="alternate" href="http://www.cnblogs.com/itelite/archive/2012/03/05/2380762.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/itelite/archive/2012/03/05/2380762.html"/><content type="html">&lt;p&gt;也许事情太杂了记忆力明显下降，做过的东西很容易忘记。上次成功将采用nettcp绑定方式的wcf部署到iis7，重新来做已经忘得差不多了。&lt;/p&gt;&lt;p&gt;重新在网上搜索相关资料，进行记录以备再用。&lt;br /&gt;一、准备：首先iis必须是7.0或更高，同时需要安装需要在&amp;#8220;打开或关闭Windows功能&amp;#8221;中安装Microsoft .NET Framework 3.5.1中的&lt;strong&gt;Windows Communication Foundation HTTP Activation、&lt;/strong&gt;&lt;strong&gt;Windows Communication Foundation Non-HTTP Activation&lt;/strong&gt;和Web管理工具-IIS6管理兼容性-&lt;strong&gt;IIS元数据库和IIS6配置兼容性&lt;/strong&gt;这三个功能；（我的系统是win7旗舰版）&lt;br /&gt;&lt;img border="0" src="http://hiphotos.baidu.com/guolulang/pic/item/ed4d8689341cef8afc1f1071.jpg" small="0"  alt="" /&gt;&lt;br /&gt;在iis中，我干脆把所有的服务都安装了。&lt;/p&gt;&lt;p&gt;二、配置网站支持nettcp协议&lt;br /&gt;防火墙需要为nettcp服务开洞，要允许端口：4502-4534通过&lt;br /&gt;&lt;img border="0" src="http://hiphotos.baidu.com/guolulang/pic/item/59b6a58971b660269f2fb410.jpg" small="0"  alt="" /&gt;&lt;br /&gt;4502：*&lt;br /&gt;&amp;nbsp;下面就可以创建你的网站虚拟目录并确定启用nettcp协议&lt;/p&gt;&lt;p&gt;&lt;img border="0" src="http://hiphotos.baidu.com/guolulang/pic/item/77b6480a6ead5acc0b7b82da.jpg" small="0"  alt="" /&gt;&lt;/p&gt;&lt;p&gt;（3）wcf在访问的时候存在跨域问题，在wwwroot文件夹即网站跟目录下放置跨域访问文件和策略文件clientaccesspolicy.xml、crossdomain.xml。文件内容如下：&lt;br /&gt;clientaccesspolicy.xml内容：&lt;/p&gt;&lt;p&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;access-policy&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;cross-domain-access&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;policy&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;allow-from http-request-headers="*"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;domain uri="*"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/allow-from&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;grant-to&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;resource path="/" include-subpaths="true"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;socket-resource port="4502-4530" protocol="tcp"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/grant-to&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/policy&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/cross-domain-access&amp;gt;&lt;br /&gt;&amp;lt;/access-policy&amp;gt;&lt;br /&gt;crossdomain.xml内容：&lt;/p&gt;&lt;p&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;allow-access-from domain="*"/&amp;gt;&lt;br /&gt;&amp;lt;/cross-domain-policy&amp;gt;&lt;/p&gt;&lt;p&gt;三、其他注意问题：&lt;br /&gt;&lt;img border="0" src="http://hiphotos.baidu.com/guolulang/pic/item/097d7fc92ea1b546bf09e69e.jpg" small="0"  alt="" /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.在向Silverlight项目中添加服务引用的时候有时会出现Could&amp;nbsp;&lt;em&gt;not load&lt;/em&gt;&amp;nbsp;file or assembly 'System.&lt;em&gt;ServiceModel.Activation.HttpModule&amp;#8217;&amp;nbsp;&lt;/em&gt;from assembly&amp;#8230;的错误，则需要在命令行中运行C:\Windows\Microsoft.NET\Framework\v4.0.30319&amp;gt;aspnet_regiis.exe -iru重新安装ASP.NET 4.0&lt;/p&gt;&lt;p&gt;5.注意WAS的启动&lt;/p&gt;&lt;p&gt;Windows (Process) Activation Service (WAS)作为 IIS7.0 特有的新增功能，和以前IIS 6.0的功能相比更加强大，因为它提供并支持除HTTP之外的更多协议，比如TCP方式和Pipe(管道)方式。利用WAS作为WCF(Windows Communication Foundation)的宿主，我们能充分利用WAS的很多优点，因为我们再也不用为非HTTP方式的WCF Service单独编写宿主程序了。而WAS本身的特点，也让我们的服务端程序能享受到只有以往的HTTP方式的WCF Service才能拥有的很多特性。&lt;br /&gt;WAS在Windows Vista/7/2008/R2中，其实是由一个单独的Windows Service来实现的 在Windows服务里头可以找到一个Windows Service，就叫做"Windows Process Activation Service"。由此看来，WAS的进程和IIS进程在物理上是隔离开的，能为我们提供一个灵活、稳定的WCF Service宿主环境。WAS内部的工作机制，大致和ASMX WebService类似。&lt;br /&gt;IIS 7上 引入了以下三组网络监听器（Listener）和监听适配器（Adapter），实现了基于TCP、Named Pipes和MSMQ的网络监听。分别是：&lt;br /&gt;TCPListener|TCP Listener Adapter&lt;br /&gt;NamedPipes Listener|Named Pipes Listener Adapter&lt;br /&gt;MSMQ Listener|MSMQ Listener Adapter&amp;nbsp;&lt;br /&gt;在IIS 7的结构如下&lt;br /&gt;&amp;nbsp;&lt;img border="0" src="http://hiphotos.baidu.com/guolulang/pic/item/945a2a717a4ffb458601b0cb.jpg" small="0"  alt="" /&gt;&lt;br /&gt;&lt;br /&gt;由于IIS 7提供了基于非HTTP网络协议的监听支持，那么就意味着当我们当我们通过IIS进行WCF服务寄宿（Hosting）的时候，可以采用非HTTP的通信方式。其中的TCPListener|TCP Listener Adapter 依赖于服务NetTcpPortSharing，为net.tcp绑定提供tcp的端口共享，具体可参看启用WCF NetTcpBinding的共享端口。&lt;/p&gt;&lt;p&gt;文章来自学IT网：&lt;a href="http://www.xueit.com/html/2010-01-25/21-982353359406.html" style="font-family: Verdana, Arial, Helvetica, sans-serif; "&gt;http://www.xueit.com/html/2010-01-25/21-982353359406.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;一些参考网址：&lt;a href="http://archive.cnblogs.com/a/1883612/" style="font-family: Verdana, Arial, Helvetica, sans-serif; "&gt;http://archive.cnblogs.com/a/1883612/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://files.cnblogs.com/dhuxin/WCF.NetTCP%e7%bb%91%e5%ae%9a%e9%85%8d%e7%bd%ae%e8%af%b4%e6%98%8e.pdf" style="font-family: Verdana, Arial, Helvetica, sans-serif; "&gt;http://files.cnblogs.com/dhuxin/WCF.NetTCP%e7%bb%91%e5%ae%9a%e9%85%8d%e7%bd%ae%e8%af%b4%e6%98%8e.pdf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cnblogs.com/chocstarfish/archive/2010/06/26/1765568.html" style="font-family: Verdana, Arial, Helvetica, sans-serif; "&gt;http://www.cnblogs.com/chocstarfish/archive/2010/06/26/1765568.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.singingeels.com/Articles/Duplex_WCF_Services_Hosted_in_IIS_Using_NetTcp.aspx" style="font-family: Verdana, Arial, Helvetica, sans-serif; "&gt;http://www.singingeels.com/Articles/Duplex_WCF_Services_Hosted_in_IIS_Using_NetTcp.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cnblogs.com/cubean/archive/2009/08/28/1555223.html" style="font-family: Verdana, Arial, Helvetica, sans-serif; "&gt;http://www.cnblogs.com/cubean/archive/2009/08/28/1555223.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://archive.cnblogs.com/a/1959748/" style="font-family: Verdana, Arial, Helvetica, sans-serif; "&gt;http://archive.cnblogs.com/a/1959748/&lt;/a&gt;&lt;br /&gt;四、1、我的wcfweb配置文件&lt;/p&gt;&lt;p&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;system.web&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;compilation debug="true" targetFramework="4.0"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;assemblies&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/assemblies&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/compilation&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/system.web&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;system.serviceModel&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bindings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;netTcpBinding&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;binding name="tcpBindingNoSecurity"&amp;nbsp; receiveTimeout="24.00:00:00"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;reliableSession inactivityTimeout="24.00:00:00" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--每次最大发送数据流大小--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;readerQuotas maxArrayLength="2147483647" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;security mode="None" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/binding&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/netTcpBinding&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bindings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behaviors&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceBehaviors&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behavior&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceMetadata httpGetEnabled="true" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- To receive exception details in faults for debugging purposes, set the value below to true.&amp;nbsp; Set to false before deployment to avoid disclosing exception information --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceDebug includeExceptionDetailInFaults="false" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--原来为FALSE--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--这里添加行开始修改默认的可序列化的集合长度为默认值的100倍6553600--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dataContractSerializer maxItemsInObjectGraph="6553600"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--这里添加行结束--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behavior&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/serviceBehaviors&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behaviors&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--这里开始添加--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;services&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;service name="ActService.Service"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpoint address="net.tcp://11.1.21.0:4502/Service/Service.svc"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; binding="netTcpBinding" bindingConfiguration="tcpBindingNoSecurity"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; contract="ActService.IService" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/service&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/services&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--这里结束添加--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceHostingEnvironment multipleSiteBindingsEnabled="true"&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/system.serviceModel&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;system.webServer&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;modules runAllManagedModulesForAllRequests="true" /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/system.webServer&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;connectionStrings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="ActivitiesEntities" connectionString="metadata=res://*/Activities.csdl|res://*/Activities.ssdl|res://*/Activities.msl;provider=System.Data.SqlClient;provider connection string=&amp;amp;quot;Data Source=4CB17D79510E48F;Initial Catalog=Activities;Integrated Security=True;MultipleActiveResultSets=True&amp;amp;quot;" providerName="System.Data.EntityClient" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;appSettings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;br /&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 /&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 /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add key="ConnectionString" value="Data Source=*.*.*.*;Initial Catalog=A;User ID=ad;Password=*"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/appSettings&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;2、silverlight下的配置文件：&lt;/p&gt;&lt;p&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;system.serviceModel&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bindings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;customBinding&amp;gt;&lt;br /&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;lt;binding name="NetTcpBinding_IService"&amp;gt;&lt;br /&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;lt;binaryMessageEncoding /&amp;gt;&lt;br /&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;lt;tcpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /&amp;gt;&lt;br /&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;lt;/binding&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/customBinding&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bindings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;client&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpoint address="net.tcp://10.2.21.13:4502/ActService/Service.svc"&lt;br /&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; binding="customBinding" bindingConfiguration="NetTcpBinding_IService"&lt;br /&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; contract="ActService.IService" name="NetTcpBinding_IService" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/client&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/system.serviceModel&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/p&gt;&lt;p&gt;3、web下wcf数据服务的配置文件&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;!--&lt;br /&gt;&amp;nbsp; For more information on how to configure your ASP.NET application, please visit&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=169433" style="font-family: Verdana, Arial, Helvetica, sans-serif; "&gt;http://go.microsoft.com/fwlink/?LinkId=169433&lt;/a&gt;&lt;br /&gt;&amp;nbsp; --&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;system.web&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;compilation debug="true" targetFramework="4.0"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;assemblies&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/assemblies&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/compilation&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/system.web&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;connectionStrings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="ActivitiesEntities" connectionString="metadata=res://*/Activities.csdl|res://*/Activities.ssdl|res://*/Activities.msl;provider=System.Data.SqlClient;provider connection string=&amp;amp;quot;Data Source=11.1.21.0;Initial Catalog=A;Persist Security Info=True;User ID=Ad;Password=1;MultipleActiveResultSets=True&amp;amp;quot;" providerName="System.Data.EntityClient" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;system.serviceModel&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceHostingEnvironment aspNetCompatibilityEnabled="true" /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/system.serviceModel&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/configuration&amp;gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/itelite/aggbug/2380762.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/itelite/archive/2012/03/05/2380762.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/itelite/archive/2012/03/03/2378321.html</id><title type="text">NET开发人员应该要知道</title><summary type="text">前阵子，我发布的ASP.NET面试问题清单。被分裂了大约一半的人说我是个疯子，这是一个列表琐事，传统的智慧。别人说，基本上“雅，这些都是很好的，我可能会看几起来。” 对我来说，这是正确的反应。当然，我并不想烧开所有。NET软件开发几个简单的“琐事”的问题。不过，我试图得到人们的思想。我相信真正优秀的ASP.NET（此事的WinForms）是一点点[只读：很多]以上只是一个设计师draging到控制和最好的希望。一个很好的车手都知道他的车 - 它能做什么和什么不能。所以，这里是另一个列表...为您的消费，大大扩展列表（归属）。我在飞机上写这最后一周从博伊西到波特兰。我想，考虑到我的清单包含不合理</summary><published>2012-03-03T06:43:00Z</published><updated>2012-03-03T06:43:00Z</updated><author><name>东阁</name><uri>http://www.cnblogs.com/itelite/</uri></author><link rel="alternate" href="http://www.cnblogs.com/itelite/archive/2012/03/03/2378321.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/itelite/archive/2012/03/03/2378321.html"/><content type="html">&lt;div&gt;&lt;span style="font-size: 12px;"&gt;前阵子，我发布的ASP.NET面试问题清单。被分裂了大约一半的人说我是个疯子，这是一个列表琐事，传统的智慧。别人说，基本上&amp;#8220;雅，这些都是很好的，我可能会看几起来。&amp;#8221; 对我来说，这是正确的反应。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;当然，我并不想烧开所有。NET软件开发几个简单的&amp;#8220;琐事&amp;#8221;的问题。不过，我试图得到人们的思想。我相信真正优秀的ASP.NET（此事的WinForms）是一点点[只读：很多]以上只是一个设计师draging到控制和最好的希望。一个很好的车手都知道他的车 - 它能做什么和什么不能。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;所以，这里是另一个列表...为您的消费，大大扩展列表（归属）。我在飞机上写这最后一周从博伊西到波特兰。我想，考虑到我的清单包含不合理的琐事的关注。我试图让一个节举办的列表。如果你从未下ASP.NET，你显然不会知道所有ASP.NET部分。如果你是一个indenpendant顾问，你可能永远不会临到其中一些概念。然而，以往的问题在这里已经不止一次在过去的4年我的时间在Corillian。因此，明知 groking这些问题，可能不会让你是好还是坏的开发商，但它会出现问题时，节省您的时间。&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;有什么了不起。NET开发人员应该要知道&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;大家谁写的代码&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;描述线程与进程之间的区别吗？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是Windows服务，其生命周期的不同，&amp;#8220;标准&amp;#8221;的EXE如何？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是可以解决任何Windows上的单个进程的最大内存量？这是系统的最大虚拟内存不同吗？这将如何影响系统的设计吗？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;一个EXE和DLL之间的区别是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是强类型与弱打字吗？这是首选？为什么呢？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;corillian的产品是一个&amp;#8220;组件容器。&amp;#8221; 命名现在随Windows Server家族的至少3个组件的容器。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是PID？它是如何解决系统时非常有用吗？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;多少个进程可以监听一个TCP / IP端口？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是GAC中？什么问题没有解决？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;中等水平。&amp;#8203;&amp;#8203;NET开发&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;描述了面向接口，面向对象和面向方面的编程之间的差异。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;描述接口是什么，以及它是如何从一个类的不同。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是思考？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;使用ASMX的XML Web服务和。NET Remoting的使用SOAP之间的区别是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;XMLSchema和CLS的同构的代表类型的系统吗？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;从概念上讲，早期绑定和后期绑定之间的区别是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;使用Assembly.Load静态参考或动态的参考？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;当使用Assembly.LoadFrom或Assembly.LoadFile是适当的呢？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是一个Asssembly限定名称吗？它是一个文件名吗？它是如何不同？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;这是有效的吗？Assembly.Load（&amp;#8220;foo.dll&amp;#8221;）;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;强命名的程序集是如何从一个不强命名的不同？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;DateTime对象可以是空的吗？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是JIT？什么是NGEN？有什么限制和各利益？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;代垃圾收集器。NET CLR如何管理对象的生命周期？什么是不确定性的定稿？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;的Finalize（）和Dispose（）之间的区别是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;如何使用（）模式有用吗？IDisposable的是什么？它是如何支持确定性定稿？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;这是什么有用的命令行怎么办？任务列表/ M的&amp;#8220;mscor *&amp;#8221;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;进程和进程之间的差异是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么技术实现进程通信。NET？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;当你在ASP.NET中运行一个组件，是什么进程在Windows XP上运行？Windows 2000的？Windows 2003的？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;高级开发人员/建筑师&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是一行这样的错误呢？DateTime.Parse（myString的）;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是临时区议会？在那里，他们必须被位于调试工作？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是圈复杂度，以及为什么它很重要吗？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;写一个标准的锁（）加上&amp;#8220;双重检查&amp;#8221;，创建一个围绕一个变量访问的关键部分。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是FullTrust的？GAC'ed组件有FullTrust的呢？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;你的代码获得什么好处，如果它要求特定的安全权限属性修饰？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;这是什么呢？GACUTIL / L | / I&amp;#8220;Corillian&amp;#8221;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;这是什么呢？SN-ţfoo.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么端口都必须通过防火墙开放的DCOM？端口135的目的是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;对比OOP和SOA。每个原则是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;XmlSerializer的工作如何？ACL权限不使用它的过程，需要吗？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;为什么是赶上（例外）几乎总是一个坏主意？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;之间的Debug.Write和Trace.Write的区别是什么？当每个人都可以使用？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;调试和发布版本之间的区别是什么？是有明显的速度差异？为什么或为什么不呢？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;JITting发生每组装或每个方法吗？这将如何影响工作集？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;对比抽象基类对接口的使用？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;是a.Equals（b）和A == B之间有什么区别？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;在比较的情况下，什么是对象的身份与对象的等价吗？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;会怎么做。NET中的深拷贝？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;解释到处IClonable当前思维。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;拳击是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;是字符串值类型还是引用类型？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;由XmlSerializer使用的模式，的&amp;#8220;PropertySpecified&amp;#8221;的意义是什么？什么问题试图解决它？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;为什么参数。NET中的坏主意？是什么人？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;属性可以被放置在特定的参数的方法吗？为什么这是有用的？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;C＃的组件开发&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;并列使用新的覆盖。什么是阴影？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;解释使用虚拟，密封，覆盖，抽象。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;解释此字符串的每个组成部分的重要性和使用：foo.bar的，版本2.0.205.0，文化=中立，PublicKeyToken = 593777ae2d274679d&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;解释之间的差异公众，保护，私营部门和内部。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;使用主互操作程序集（PIA），你得到什么好处？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;通过何种机制不NUnit的知道什么样的方法来测试？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;之间有什么区别：赶上（例外五）{扔&amp;#203;;}赶上（例外五）{罚球;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;typeof运算（富）和myFoo.GetType（）之间的区别是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;解释什么是发生在第一个构造：C类公共C（字符串）：（）{;};公众C（）{;}}这是如何构建一个有用吗？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;这是什么？这可以被用来在一个静态方法？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;ASP.NET（用户界面）的开发&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;描述了如何基于浏览器的表单POST成为像Button1_OnClick服务器端事件。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是回传？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是ViewState？它是如何编码？这是加密的吗？使用ViewState谁？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是&amp;lt;machineKey&amp;gt;元素和两个ASP.NET技术是它的用途是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;三种会话状态提供者可在ASP.NET 1.1？什么是各的优点和缺点是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;网络园艺是什么？使用它会如何影响设计呢？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;鉴于一个ASP.NET应用程序，它有多少应用程序对象单一PROC中吗？双？一个启用网络园艺双？这将如何影响设计呢？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;在ASP.NET中重用线程之间reqeusts？是否每个HttpRequest的获得它自己的线程？你应该使用与ASP.NET线程本地存储？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;[ThreadStatic]属性是在ASP.NET中有用吗？是否有副作用？好事还是坏事？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;举一个例子，如何使用一个HttpHandler简化&amp;#8203;&amp;#8203;现有的设计服务。aspx页的支票影像。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;事件什么样一个HttpModule订阅？他们可以有一个实现什么样的影响？有什么可以做，而无需重新编译ASP.NET应用程序？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;描述的方式呈现一个任意端点（URL）和请求路由到ASP.NET端点。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;解释饼干是如何工作的。举一个滥用Cookie的例子。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;解释重要性HttpRequest.ValidateInput（）？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;通过什么样的数据通过HTTP头？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;并列的HTTP动词GET和POST。什么是HEAD？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;命名和描述至少有半打的HTTP状态代码和他们对发出请求的客户端。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;如何如果不修改，因为工作吗？怎么能与ASP.NET编程实现？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;解释的@ OutputCache％&amp;gt;和使用的VaryByParam，VaryByHeader。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;VaryByCustom是如何工作的？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;将如何实现ASP.NET HTML输出缓存，页面缓存传出除了通过Q =所有值产生的版本，其中q = 5（如在http://localhost/page.aspx?q=5）？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;使用XML的开发人员&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;XML命名空间的目的是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;当DOM是适当的使用？当是不？是否有大小限制吗？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是WS-I基本概要，以及为什么它很重要吗？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;写一个小XML文档，使用默认的命名空间和一个合格的（前缀）命名空间。包括从两个命名空间的元素。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;一个元素和属性之间的根本区别是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;格式良好的XML和有效的XML之间的区别是什么？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;你将如何验证XML使用。？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;这是为什么几乎总是一个坏主意？当它是一个好主意？myXmlDocument.SelectNodes（/ / MYNODE&amp;#8220;）;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;形容拉式解析器（XmlReader的）和事件，读者之间的差异（SAX）&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;XPathDocument和XmlDocument之间的区别是什么？说明其中一个比其他应使用的情况。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;什么是一个XML的&amp;#8220;片段&amp;#8221;和一个XML之间的区别&amp;#8220;的文件。&amp;#8221;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;是什么意思是说&amp;#8220;规范&amp;#8221;XML的形式？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;为什么是从不同的XML DOM XML InfoSet规范？什么Infoset的尝试解决？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;相反的DTD与XSD的。他们有什么异同？这是首选，为什么呢？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;System.Xml的支持DTD的吗？怎么样？&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;任何XML Schema可以被表示为对象图？反之亦然？&lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/itelite/aggbug/2378321.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/itelite/archive/2012/03/03/2378321.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/itelite/archive/2012/02/24/2366145.html</id><title type="text">IMEI and IMEISV</title><summary type="text">Composition of IMEIThe International Mobile station Equipment Identity (IMEI) is composed as shown in figure 1.&lt;- 6 Digits -&gt;&lt;- 2 Digits -&gt;&lt;- 6 Digits -&gt;&lt;- 1 Digit -&gt;TACFACSNRCD&lt;------ 15 Digits ------&gt;(figure 1. Structure of IMEI)Example:448895106455010TACFACSNRCD44889</summary><published>2012-02-24T02:22:00Z</published><updated>2012-02-24T02:22:00Z</updated><author><name>东阁</name><uri>http://www.cnblogs.com/itelite/</uri></author><link rel="alternate" href="http://www.cnblogs.com/itelite/archive/2012/02/24/2366145.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/itelite/archive/2012/02/24/2366145.html"/><content type="html">&lt;div style="word-wrap: break-word; line-height: normal; min-height: 100px; max-width: 80%; color: #444444; font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "&gt;&lt;table cellspacing="0" cellpadding="0" style="word-wrap: break-word; empty-cells: show; border-collapse: collapse; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; width: 797px; table-layout: fixed; margin-left: 1px; "&gt;&lt;tbody style="word-wrap: break-word; "&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td id="postmessage_701053" style="word-wrap: break-word; color: #444444; font-size: 14px; line-height: 1.6em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br style="color: #000000; font-family: Simsun; line-height: normal; text-align: -webkit-center; font-size: medium; " /&gt;&lt;table width="100%" border="1" style="font-family: Simsun; "&gt;&lt;tbody&gt;&lt;tr align="center"&gt;&lt;td&gt;&lt;p&gt;&lt;strong&gt;Composition of IMEI&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;The International Mobile station Equipment Identity (IMEI) is composed as shown in figure 1.&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr align="center"&gt;&lt;td&gt;&amp;lt;- 6 Digits -&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;- 2 Digits -&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;- 6 Digits -&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;- 1 Digit -&amp;gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;TAC&lt;/th&gt;&lt;th&gt;FAC&lt;/th&gt;&lt;th&gt;SNR&lt;/th&gt;&lt;th&gt;CD&lt;/th&gt;&lt;/tr&gt;&lt;tr align="center"&gt;&lt;td colspan="4" valign="middle"&gt;&amp;lt;------ 15 Digits ------&amp;gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="4" align="right"&gt;&lt;em&gt;(figure 1. Structure of IMEI)&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Example:&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr align="center"&gt;&lt;td&gt;448895&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;645501&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;TAC&lt;/th&gt;&lt;th&gt;FAC&lt;/th&gt;&lt;th&gt;SNR&lt;/th&gt;&lt;th&gt;CD&lt;/th&gt;&lt;/tr&gt;&lt;tr align="center"&gt;&lt;td colspan="4" valign="middle"&gt;448895106455010&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;The IMEI is composed of the following elements (each element shall consist of decimal digits only):&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;li&gt;[TAC]&amp;nbsp;&lt;strong&gt;T&lt;/strong&gt;ype&amp;nbsp;&lt;strong&gt;A&lt;/strong&gt;pproval&amp;nbsp;&lt;strong&gt;C&lt;/strong&gt;ode&lt;/li&gt;&lt;li&gt;[FAC]&amp;nbsp;&lt;strong&gt;F&lt;/strong&gt;inal&amp;nbsp;&lt;strong&gt;A&lt;/strong&gt;ssembly&amp;nbsp;&lt;strong&gt;C&lt;/strong&gt;ode identifies the place of manufacture/final assembly&lt;/li&gt;&lt;li&gt;[SNR]&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;erial&amp;nbsp;&lt;strong&gt;N&lt;/strong&gt;umbe&lt;strong&gt;r&lt;/strong&gt;&amp;nbsp;is an individual serial number uniquely identifying each equipment within each TAC and FAC&lt;/li&gt;&lt;li&gt;[CD ]&amp;nbsp;&lt;strong&gt;C&lt;/strong&gt;heck&amp;nbsp;&lt;strong&gt;D&lt;/strong&gt;igit (Also reffered as&amp;nbsp;&lt;strong&gt;SD S&lt;/strong&gt;pare&amp;nbsp;&lt;strong&gt;D&lt;/strong&gt;igit)&lt;/li&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table width="100%" border="1" style="font-family: Simsun; "&gt;&lt;tbody&gt;&lt;tr align="center"&gt;&lt;td&gt;&lt;p&gt;&lt;strong&gt;Composition of IMEISV&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;The International Mobile station Equipment Identity and Software Version Number (IMEISV) is composed as shown in figure 2.&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr align="center"&gt;&lt;td&gt;&amp;lt;- 6 Digits -&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;- 2 Digits -&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;- 6 Digits -&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;- 2 Digits -&amp;gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;TAC&lt;/th&gt;&lt;th&gt;FAC&lt;/th&gt;&lt;th&gt;SNR&lt;/th&gt;&lt;th&gt;SVN&lt;/th&gt;&lt;/tr&gt;&lt;tr align="center"&gt;&lt;td colspan="4" valign="middle"&gt;&amp;lt;------------------- 16 Digits -------------------&amp;gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="4" align="right"&gt;&lt;em&gt;(figure 2. Structure of IMEISV)&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;The IMEI is composed of the following elements (each element shall consist of decimal digits only):&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;li&gt;[TAC]&amp;nbsp;&lt;strong&gt;T&lt;/strong&gt;ype&amp;nbsp;&lt;strong&gt;A&lt;/strong&gt;pproval&amp;nbsp;&lt;strong&gt;C&lt;/strong&gt;ode&lt;/li&gt;&lt;li&gt;[FAC]&amp;nbsp;&lt;strong&gt;F&lt;/strong&gt;inal&amp;nbsp;&lt;strong&gt;A&lt;/strong&gt;ssembly&amp;nbsp;&lt;strong&gt;C&lt;/strong&gt;ode identifies the place of manufacture/final assembly&lt;/li&gt;&lt;li&gt;[SNR]&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;erial&amp;nbsp;&lt;strong&gt;N&lt;/strong&gt;umbe&lt;strong&gt;r&lt;/strong&gt;&amp;nbsp;is an individual serial number uniquely identifying each equipment within each TAC and FAC&lt;/li&gt;&lt;li&gt;[SVN]&amp;nbsp;&lt;strong&gt;S&lt;/strong&gt;oftware&amp;nbsp;&lt;strong&gt;V&lt;/strong&gt;ersion&amp;nbsp;&lt;strong&gt;N&lt;/strong&gt;umber identifies the software version number of the mobile equipment.&lt;/li&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table width="100%" border="1" borderstyle="thin" style="font-family: Simsun; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;table width="100%"&gt;&lt;tbody&gt;&lt;tr align="center"&gt;&lt;td&gt;[&lt;strong&gt;TAC&lt;/strong&gt;]&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;strong&gt;TAC&lt;/strong&gt;&amp;nbsp;asdasdjh asikdh askjdhask dja sdkasjhdjkasd asdukasdh kasd&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;在网上看到很&lt;a href="http://bbs.gfan.com/tag.php?name=%E5%A4%9A" target="_blank" style="word-wrap: break-word; color: #333333; line-height: normal; cursor: pointer; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ff0000; white-space: nowrap; "&gt;多&lt;/a&gt;关于IMEI号查询&lt;a href="http://bbs.gfan.com/tag.php?name=%E6%89%8B%E6%9C%BA" target="_blank" style="word-wrap: break-word; color: #333333; line-height: normal; cursor: pointer; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ff0000; white-space: nowrap; "&gt;手机&lt;/a&gt;信息，虽然不能说错，但是网上所说（包括论坛里面关于IMEI的帖子）的IMEI结构已经改变。&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;其实我想说的就是：&lt;br style="word-wrap: break-word; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; font-weight: bold; "&gt;论坛里自己手机里面第7、8位是02的并不是代表是由阿拉伯生产的。&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;03年之前的第7、8位才是表示FAC，即生产地的。03年以后的IMEI号结构，第7、8位已经和前面6位合起来表示其他的意思了！&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;下面是详细的解释，可能会有点复杂~有兴趣的看一下吧~&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;***************************************************************************************************************&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;本文主要内容：&lt;/strong&gt;&lt;ul type="1" style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 14px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: none; list-style-position: initial; list-style-image: initial; line-height: normal; "&gt;&lt;li style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: decimal; list-style-position: initial; list-style-image: initial; "&gt;&lt;strong style="word-wrap: break-word; text-align: left; font-weight: bold; "&gt;IMEI码结构的介绍&lt;/strong&gt;&lt;/li&gt;&lt;li style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: decimal; list-style-position: initial; list-style-image: initial; "&gt;&lt;strong style="word-wrap: break-word; text-align: left; font-weight: bold; "&gt;IMEI码前后结构的改变及比较&lt;/strong&gt;&lt;/li&gt;&lt;li style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: decimal; list-style-position: initial; list-style-image: initial; "&gt;&lt;strong style="word-wrap: break-word; text-align: left; font-weight: bold; "&gt;IMEISV简要介绍&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;***************************************************************************************************************&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;为此，我查阅了一些资料，大致浏览了一下，其中比较权威的是&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;GSM Assocication&lt;/strong&gt;的文档&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;《IMEI Allocation and Approval Guidelines(version 3.7 December 2008)》&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;网页版：&lt;a href="http://www.gsmworld.com/documents/DG06_3v7-Draft.pdf" target="_blank" style="word-wrap: break-word; color: #0084d0; line-height: normal; "&gt;http://www.gsmworld.com/documents/DG06_3v7-Draft.pdf&lt;/a&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;里面详细介绍了整个IMEI的发展。&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;众所周知，所有的手机都是通过输入&lt;div style="word-wrap: break-word; line-height: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 10px; padding-right: 0px; padding-bottom: 5px; padding-left: 10px; width: 586px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; background-image: url(http://bbs.gfan.com/images/default/codebg.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f7f7f7; overflow-x: hidden; overflow-y: hidden; background-position: 0px 0px; background-repeat: no-repeat repeat; "&gt;&lt;div id="code0" style="word-wrap: break-word; "&gt;&lt;ol style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 10px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: none; list-style-position: initial; list-style-image: initial; "&gt;&lt;li style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; list-style-type: decimal-leading-zero; list-style-position: initial; list-style-image: initial; line-height: 1.8em; font-family: Monaco, Consolas, '&amp;quot;Lucida Console&amp;quot;', '&amp;quot;Courier New&amp;quot;', serif; font-size: 12px; "&gt;*#06#&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em style="word-wrap: break-word; text-align: left; margin-left: 43px; color: #666666; font-size: 12px; cursor: pointer; "&gt;复制代码&lt;/em&gt;&lt;/div&gt;来查询IMEI号。&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;如果要直接查询IMEI信息据我所知有以下两个途径&lt;ul type="1" style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 14px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: none; list-style-position: initial; list-style-image: initial; line-height: normal; "&gt;&lt;li style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: decimal; list-style-position: initial; list-style-image: initial; "&gt;&lt;a href="http://www.numberingplans.com/?page=analysis&amp;amp;sub=imeinr" target="_blank" style="word-wrap: break-word; color: #0084d0; "&gt;http://www.numberingplans.com/?page=analysis&amp;amp;sub=imeinr&lt;/a&gt;（其中的分析结果和本文所说的是一样的）&lt;/li&gt;&lt;li style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: decimal; list-style-position: initial; list-style-image: initial; "&gt;&lt;a href="http://www.tenaa.com.cn/(S(apcbpfi3zhvu2i55ktmzeg55))/WSFW/FlagValidateImei.aspx" target="_blank" style="word-wrap: break-word; color: #0084d0; "&gt;http://www.tenaa.com.cn/(S(apcbpfi3zhvu2i55ktmzeg55))/WSFW/FlagValidateImei.aspx&lt;/a&gt;（这是国内的，感觉上是查询行货手机用的）&lt;/li&gt;&lt;li style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: decimal; list-style-position: initial; list-style-image: initial; "&gt;&lt;a href="http://service.htceurope.com/htcdistributor/default.aspx" target="_blank" style="word-wrap: break-word; color: #0084d0; "&gt;http://service.htceurope.com/htcdistributor/default.aspx&lt;/a&gt;&amp;nbsp;（&lt;strong style="word-wrap: break-word; text-align: left; font-weight: bold; "&gt;&lt;a href="http://bbs.gfan.com/tag.php?name=HTC" target="_blank" style="word-wrap: break-word; color: #333333; cursor: pointer; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ff0000; white-space: nowrap; "&gt;HTC&lt;/a&gt;官方查询地址&lt;/strong&gt;）&lt;/li&gt;&lt;/ul&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;***************************************************************************************************************&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;现在来介绍一下&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;IMEI(INTERNATIONAL MOBILE EQUIPMENT IDENTITY)国际移动设备标识码&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;img src="http://attachments.gfan.com/attachments2/day_100109/1001091427ca14ca832116aac5.jpg" file="http://attachments.gfan.com/attachments2/day_100109/1001091427ca14ca832116aac5.jpg" width="650" id="aimg_43739" alt="IMEI1.JPG" style="word-wrap: break-word; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; line-height: normal; " /&gt;&amp;nbsp;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;大致说的是：&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;2002年12月31日之前的IMEI结构是第一张表格中的。后来经过讨论，一致决定将结构改为第二个表格（将TAC码和FAC码合并为8位），这个格式自2003年1月1日起生效。&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; font-weight: bold; "&gt;网上的介绍出现差错的地方，也是大家最关心的地方就是第7、8位的FAC码，在论坛中普遍的FAC码是02。&lt;/strong&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;***************************************************************************************************************&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;但是，采用新格式之前还是有一个过渡期的，过渡期间所采取的措施主要是：&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;div style="word-wrap: break-word; line-height: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 5px; padding-left: 65px; background-image: url(http://bbs.gfan.com/images/default/icon_quote_s.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f9f9f9; background-position: 20px 6px; background-repeat: no-repeat no-repeat; "&gt;&lt;blockquote style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 65px; padding-bottom: 5px; padding-left: 0px; line-height: 1.6em; background-image: url(http://bbs.gfan.com/images/default/icon_quote_e.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 100% 100%; background-repeat: no-repeat no-repeat; "&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;To achieve this transition, all eight-digit TAC codes allocated between 31/12/02 and 31/3/04&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;were given unique combinations of the first six digits (NNXXXX) with the seventh and eighth&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;digits (YY) being fixed to 00.&amp;nbsp; &amp;nbsp;&lt;/blockquote&gt;&lt;/div&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;主要是最后一句，在2002年12月31日至2004年3月31日期间，第7、8位固定为&amp;#8220;00&amp;#8221;。&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;***************************************************************************************************************&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;下面对这两个格式做一下说明&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;img src="http://attachments.gfan.com/attachments2/day_100109/1001091434ef0f9430d079e1aa.jpg" file="http://attachments.gfan.com/attachments2/day_100109/1001091434ef0f9430d079e1aa.jpg" width="650" id="aimg_43740" alt="IMEI2.JPG" style="word-wrap: break-word; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; line-height: normal; " /&gt;&amp;nbsp;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;大家仔细观察会发现两个格式相同点和不同点。&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;***************************************************************************************************************&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;TAC&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;Type Allocation Code，类型分配码&lt;/strong&gt;，formely known as Type Approval Code（之前是被叫做&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;类型许可码&lt;/strong&gt;）网上是翻译为&amp;#8220;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;设备型号核准号码&lt;/strong&gt;&amp;#8221;。&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;table cellspacing="0" style="word-wrap: break-word; empty-cells: show; border-collapse: collapse; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; line-height: normal; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #e3edf5; border-right-color: #e3edf5; border-bottom-color: #e3edf5; border-left-color: #e3edf5; border-image: initial; width: 300px; table-layout: fixed; margin-left: 1px; "&gt;&lt;tbody style="word-wrap: break-word; "&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; color: #444444; font-size: 14px; line-height: 1.6em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #e3edf5; border-right-color: #e3edf5; border-bottom-color: #e3edf5; border-left-color: #e3edf5; border-image: initial; "&gt;时间&lt;/td&gt;&lt;td style="word-wrap: break-word; color: #444444; font-size: 14px; line-height: 1.6em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #e3edf5; border-right-color: #e3edf5; border-bottom-color: #e3edf5; border-left-color: #e3edf5; border-image: initial; "&gt;TAC位数&lt;/td&gt;&lt;td style="word-wrap: break-word; color: #444444; font-size: 14px; line-height: 1.6em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #e3edf5; border-right-color: #e3edf5; border-bottom-color: #e3edf5; border-left-color: #e3edf5; border-image: initial; "&gt;格式&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; color: #444444; font-size: 14px; line-height: 1.6em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #e3edf5; border-right-color: #e3edf5; border-bottom-color: #e3edf5; border-left-color: #e3edf5; border-image: initial; "&gt;2003年1月1日之前&lt;/td&gt;&lt;td style="word-wrap: break-word; color: #444444; font-size: 14px; line-height: 1.6em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #e3edf5; border-right-color: #e3edf5; border-bottom-color: #e3edf5; border-left-color: #e3edf5; border-image: initial; "&gt;6位&lt;/td&gt;&lt;td style="word-wrap: break-word; color: #444444; font-size: 14px; line-height: 1.6em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #e3edf5; border-right-color: #e3edf5; border-bottom-color: #e3edf5; border-left-color: #e3edf5; border-image: initial; "&gt;NNXXXX&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; color: #444444; font-size: 14px; line-height: 1.6em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #e3edf5; border-right-color: #e3edf5; border-bottom-color: #e3edf5; border-left-color: #e3edf5; border-image: initial; "&gt;2003年1月1日之后&lt;/td&gt;&lt;td style="word-wrap: break-word; color: #444444; font-size: 14px; line-height: 1.6em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #e3edf5; border-right-color: #e3edf5; border-bottom-color: #e3edf5; border-left-color: #e3edf5; border-image: initial; "&gt;8位&lt;/td&gt;&lt;td style="word-wrap: break-word; color: #444444; font-size: 14px; line-height: 1.6em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #e3edf5; border-right-color: #e3edf5; border-bottom-color: #e3edf5; border-left-color: #e3edf5; border-image: initial; "&gt;NNXXXXYY&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;div style="word-wrap: break-word; line-height: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 5px; padding-left: 65px; background-image: url(http://bbs.gfan.com/images/default/icon_quote_s.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f9f9f9; background-position: 20px 6px; background-repeat: no-repeat no-repeat; "&gt;&lt;blockquote style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 65px; padding-bottom: 5px; padding-left: 0px; line-height: 1.6em; background-image: url(http://bbs.gfan.com/images/default/icon_quote_e.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 100% 100%; background-repeat: no-repeat no-repeat; "&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;在2003年1月1日之前，TAC表述为：&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;The TAC identifies the Type Allocation Code, formerly known as the Type Approval Code,&amp;nbsp;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;for the type of the ME. It consists of&amp;nbsp;two parts; the first part (NN) defines the Reporting Body&amp;nbsp;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;allocating the TAC and the second part (XXXX) defines the ME type.&amp;nbsp;&amp;nbsp;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;意思大致为：TAC由两部分组成，第一部分，用&amp;#8220;NN&amp;#8221;表示；第二部分，用&amp;#8220;XXXX&amp;#8221;表示，代表ME type（表示Mobile Equipment Type，即移动设备类型）。&lt;/strong&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;div style="word-wrap: break-word; line-height: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 5px; padding-left: 65px; background-image: url(http://bbs.gfan.com/images/default/icon_quote_s.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f9f9f9; background-position: 20px 6px; background-repeat: no-repeat no-repeat; "&gt;&lt;blockquote style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 65px; padding-bottom: 5px; padding-left: 0px; line-height: 1.6em; background-image: url(http://bbs.gfan.com/images/default/icon_quote_e.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 100% 100%; background-repeat: no-repeat no-repeat; "&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;其中，&amp;#8220;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;YY&lt;/strong&gt;&amp;#8221;，表示&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;FAC&lt;/strong&gt;&amp;nbsp;(&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;Final Assembly Code&lt;/strong&gt;)，应该叫做&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;最后装配码&lt;/strong&gt;，网上翻译为&amp;#8220;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;工厂装配码&lt;/strong&gt;&amp;#8221;。&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;These two digits (YY) are generally used to identify the specific factory or manufacturing site of the ME. The allocation of the FAC is under the control of the Reporting Body.&amp;nbsp;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;Valid Range 00 &amp;#8211; 99&amp;nbsp;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;意思大致为：这两位是用来标识移动设备制造厂商的。也就是网上流传的版本。&lt;/strong&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;div style="word-wrap: break-word; line-height: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 5px; padding-left: 65px; background-image: url(http://bbs.gfan.com/images/default/icon_quote_s.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f9f9f9; background-position: 20px 6px; background-repeat: no-repeat no-repeat; "&gt;&lt;blockquote style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 65px; padding-bottom: 5px; padding-left: 0px; line-height: 1.6em; background-image: url(http://bbs.gfan.com/images/default/icon_quote_e.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 100% 100%; background-repeat: no-repeat no-repeat; "&gt;在2003年1月1日之后，TAC被表述为：&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;The following 6 digits of the TAC are under the control of the Reporting Body. These 6 digits together with the Reporting Body 2 digit identifier uniquely identify each ME Type.&amp;nbsp;&amp;nbsp;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;Valid Range 000000 &amp;#8211; 999999&amp;nbsp;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;意思大致为：6位(XXXXYY) 加上前两位 (NN) 唯一标识一个ME Type（表示Mobile Equipment Type，即移动设备类型）&lt;/strong&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;SNR&amp;nbsp;&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;Serial Number&lt;/strong&gt;，序列号，格式同样是6位&amp;#8220;ZZZZZZ&amp;#8221;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;div style="word-wrap: break-word; line-height: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 5px; padding-left: 65px; background-image: url(http://bbs.gfan.com/images/default/icon_quote_s.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f9f9f9; background-position: 20px 6px; background-repeat: no-repeat no-repeat; "&gt;&lt;blockquote style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 65px; padding-bottom: 5px; padding-left: 0px; line-height: 1.6em; background-image: url(http://bbs.gfan.com/images/default/icon_quote_e.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 100% 100%; background-repeat: no-repeat no-repeat; "&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;在2003年1月1日之前，SNR表述为：&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;The 6 digit SNR (ZZZZZZ) in combination with the FAC is used to uniquely identify each ME of a particular ME Type.&amp;nbsp;&amp;nbsp;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;意思大致为：SNR6位加上FAC被用来唯一标识特定移动设备类型中的每一个移动设备&lt;/strong&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;div style="word-wrap: break-word; line-height: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 5px; padding-left: 65px; background-image: url(http://bbs.gfan.com/images/default/icon_quote_s.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f9f9f9; background-position: 20px 6px; background-repeat: no-repeat no-repeat; "&gt;&lt;blockquote style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 65px; padding-bottom: 5px; padding-left: 0px; line-height: 1.6em; background-image: url(http://bbs.gfan.com/images/default/icon_quote_e.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 100% 100%; background-repeat: no-repeat no-repeat; "&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;在2003年1月1日之后，SNR被表述为：&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;The serial number (SNR) in is used to uniquely identify each ME of a particular ME Type.&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;意思大致为：SNR6位被用来被用来唯一标识特定移动设备类型中的每一个移动设备&lt;/strong&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;两个的差别就在于是否使用FAC&lt;br style="word-wrap: break-word; " /&gt;&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;Check Digit，最后一位&lt;br style="word-wrap: break-word; " /&gt;&lt;/strong&gt;这位是一个功能位，并没有改变，都是用来做检验的位，通过Luhn算法，可以算出IMEI号是否正确。具体的怎么算可以去网上查阅资料&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;a href="http://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity" target="_blank" style="word-wrap: break-word; color: #0084d0; line-height: normal; "&gt;http://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity&lt;/a&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;a href="http://en.wikipedia.org/wiki/Luhn_algorithm" target="_blank" style="word-wrap: break-word; color: #0084d0; line-height: normal; "&gt;http://en.wikipedia.org/wiki/Luhn_algorithm&lt;/a&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;***************************************************************************************************************&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;IMEISV(INTERNATIONAL MOBILE EQUIPMENT IDENTITY SOFTWARE VERSION)&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;SV表示&lt;a href="http://bbs.gfan.com/tag.php?name=%E8%BD%AF%E4%BB%B6" target="_blank" style="word-wrap: break-word; color: #333333; cursor: pointer; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ff0000; white-space: nowrap; "&gt;软件&lt;/a&gt;版本&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;它跟IMEI的唯一区别就在于最后一位&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;IMEI有15位，最后一位是Check digit，即检验位；&lt;/strong&gt;&lt;br style="word-wrap: break-word; line-height: normal; " /&gt;&lt;strong style="word-wrap: break-word; text-align: left; line-height: normal; font-weight: bold; "&gt;IMEISV有16位，是去掉了Check digit，加上了两位SVN，即software version number。（从00 - 98，99备用）&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div id="post_rate_div_701053" style="word-wrap: break-word; line-height: normal; color: #444444; font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "&gt;&lt;/div&gt;&lt;div style="word-wrap: break-word; line-height: normal; height: 50px; width: 600px; clear: both; display: block; margin-top: 20px; margin-right: auto; margin-bottom: 20px; margin-left: auto; overflow-x: hidden; overflow-y: hidden; color: #444444; font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; padding-left: 100px; "&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/itelite/aggbug/2366145.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/itelite/archive/2012/02/24/2366145.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/itelite/archive/2012/02/19/2358163.html</id><title type="text">Packaging Oracle Data Access Components into .Net projects</title><summary type="text">We don’t want to have every user install Oracle Data Access Components and drivers so we want to package it into our deployment.first dowload Oracle Data Access Components. The most current one as of 2/11/2011 ishttp://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.htmlnote that this is th</summary><published>2012-02-19T06:07:00Z</published><updated>2012-02-19T06:07:00Z</updated><author><name>东阁</name><uri>http://www.cnblogs.com/itelite/</uri></author><link rel="alternate" href="http://www.cnblogs.com/itelite/archive/2012/02/19/2358163.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/itelite/archive/2012/02/19/2358163.html"/><content type="html">&lt;div&gt;&lt;span style="font-size: 12px;"&gt;We don&amp;#8217;t want to have every user install Oracle Data Access Components and drivers so we want to package it into our deployment.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;first dowload Oracle Data Access Components. The most current one as of 2/11/2011 is&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;note that this is the 32 bit version. This is because if you get the 64 bit version but you are targeting 32 bit (x86 platform) you will get a warning at compile time.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;after downloading and installing ODAC.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;find the following files&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;oci.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;ociw32.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;Oracle.DataAccess.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;orannzsbb11.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;oraocci11.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;oraociicus11.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;OraOps11w.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;If you are using Oracle.DataAccess.dll in your project you will want to add it to your project as a reference.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;Next we need to create a new project for the deployment. Other Project Types &amp;gt; Setup and Deployment &amp;gt; Visual Studio Installer &amp;gt; Setup Project.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;Right click on the setup project and Add &amp;gt; Project Output&amp;#8230;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;Add your projects output in here.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;Now we add rest of the dependencies that oracle needs. Right click on the setup project and Add &amp;gt; File &amp;#8230;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;Add the rest of the dlls in the list:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;oci.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;ociw32.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;orannzsbb11.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;oraocci11.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;oraociicus11.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;OraOps11w.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;Oracle.DataAccess.dll &amp;#8212; don&amp;#8217;t need this one because it should be in the references already.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;Build the project and you are ready to deploy it.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;if you get &amp;#8220;The provider is not compatible with the version of Oracle client&amp;#8221;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;make sure you are getting all the dlls from a single install of ODAC&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;This should add roughly 38 megs to your project.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;msvcr71.dll too?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px;"&gt;http://stackoverflow.com/questions/923283/what-is-the-minimal-setup-required-to-deploy-a-net-application-with-oracle-clie&lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/itelite/aggbug/2358163.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/itelite/archive/2012/02/19/2358163.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/itelite/archive/2012/02/13/2348954.html</id><title type="text">C#事件传参数[delegate]</title><summary type="text">delegate,event</summary><published>2012-02-13T03:51:00Z</published><updated>2012-02-13T03:51:00Z</updated><author><name>东阁</name><uri>http://www.cnblogs.com/itelite/</uri></author><link rel="alternate" href="http://www.cnblogs.com/itelite/archive/2012/02/13/2348954.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/itelite/archive/2012/02/13/2348954.html"/><content type="html">&lt;div&gt;事件回调   既然C#有事件这个东西，为啥不用呢，而且事件在窗体通信方面，有着更为方便的作用，我们知道事件实际上就是状态的捕获，在最后我会举一个捕获状态的例子，先看数据互相操作的例子。   Form2：&lt;br /&gt;//定义一个需要string类型参数的委托&lt;br /&gt;publicdelegate void MyDelegate(string text);&lt;br /&gt;public partial class Form2 :Form1&lt;br /&gt;    {&lt;br /&gt;       //定义该委托的事件&lt;br /&gt;        public event MyDelegate MyEvent;&lt;br /&gt;        public Form2(string text)&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;            this.textBox1.Text = text;&lt;br /&gt;        }&lt;br /&gt;        private void btnChange_Click(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;           //触发事件，并将修改后的文本回传&lt;br /&gt;            MyEvent(this.textBox1.Text);&lt;br /&gt;            this.Close();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt;   Form1:public partial class Form1 :Form&lt;br /&gt;    {&lt;br /&gt;        public int index = 0;&lt;br /&gt;        public string text = null;&lt;br /&gt;        public Form1()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;        }&lt;br /&gt;        private void listBox1_SelectedIndexChanged(object sender, EventArgse)&lt;br /&gt;        {&lt;br /&gt;            if (this.listBox1.SelectedItem != null)&lt;br /&gt;            {&lt;br /&gt;                text = this.listBox1.SelectedItem.ToString();&lt;br /&gt;                index = this.listBox1.SelectedIndex;&lt;br /&gt;                Form2 form2 = new Form2(text);&lt;br /&gt;               //注册form2_MyEvent方法的MyEvent事件&lt;br /&gt;                form2.MyEvent += new MyDelegate(form2_MyEvent);&lt;br /&gt;                form2.Show();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;       //处理&lt;br /&gt;        void form2_MyEvent(string text)&lt;br /&gt;        {&lt;br /&gt;            this.listBox1.&lt;/div&gt;&lt;img src="http://www.cnblogs.com/itelite/aggbug/2348954.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/itelite/archive/2012/02/13/2348954.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
