<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_JasenKin</title><subtitle type="text">志在苍穹，低调中的不平凡...</subtitle><id>http://feed.cnblogs.com/blog/u/63809/rss</id><updated>2012-05-31T15:23:26Z</updated><author><name>JasenKin</name><uri>http://www.cnblogs.com/jasenkin/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jasenkin/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/63809/rss"/><entry><id>http://www.cnblogs.com/jasenkin/archive/2012/05/31/2529272.html</id><title type="text">字典转换成实体列表</title><summary type="text">。。。。。。。</summary><published>2012-05-31T15:23:00Z</published><updated>2012-05-31T15:23:00Z</updated><author><name>JasenKin</name><uri>http://www.cnblogs.com/jasenkin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jasenkin/archive/2012/05/31/2529272.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jasenkin/archive/2012/05/31/2529272.html"/><content type="html">。。。。。。。&lt;img src="http://www.cnblogs.com/jasenkin/aggbug/2529272.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jasenkin/archive/2012/05/31/2529272.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jasenkin/archive/2012/02/22/recursion_math_algorithm_comparion.html</id><title type="text">递归算法与优化后的算法对比</title><summary type="text">前段时间看了《【面试】——反应迟钝的递归》中的三个递归算法，斐波那契数列优化后的算法思路确实不错，但是后面2个数列用递归的话，个人感觉有点得不偿失。能不用递归的话，尽量不用，因为有些算法完全可以用数学来解决。因此，本文中将这三个数列的最终算法总结如下。1、计算数组1,1,2,3,5,8,13...第30位的值递归算法如下：publicstaticintCalculateFibonacciSequence(intindex){if(index&lt;=0){return0;}if(index==1||index==2){return1;}returnCalculateFibonacciSeque</summary><published>2012-02-21T17:02:00Z</published><updated>2012-02-21T17:02:00Z</updated><author><name>JasenKin</name><uri>http://www.cnblogs.com/jasenkin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jasenkin/archive/2012/02/22/recursion_math_algorithm_comparion.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jasenkin/archive/2012/02/22/recursion_math_algorithm_comparion.html"/><content type="html">&lt;p&gt; 前段时间看了《&lt;a style="color: rgb(0, 0, 128);" href="http://www.cnblogs.com/laov/archive/2012/02/12/2347754.html"&gt;【面试】&amp;#8212;&amp;#8212;反应迟钝的递归&lt;/a&gt;》中的三个递归算法，斐波那契数列优化后的算法思路确实不错，但是后面2个数列用递归的话，个人感觉有点得不偿失。能不用递归的话，尽量不用，因为有些算法完全可以用数学来解决。因此，本文中将这三个数列的最终算法总结如下。&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 12pt;"&gt;1、计算数组1,1,2,3,5,8,13...第30位的值&lt;/span&gt;&lt;/p&gt;&lt;p&gt;递归算法如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;CalculateFibonacciSequence(&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;index)&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(index&amp;nbsp;&amp;lt;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;}&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(index&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;&amp;nbsp;||&amp;nbsp;index&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&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;}&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;CalculateFibonacciSequence(index&amp;nbsp;-&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;)&amp;nbsp;+&amp;nbsp;CalculateFibonacciSequence(index&amp;nbsp;-&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;用递归算法来计算的话，有很多重复性的操作，采用数组相对来说，效率更高，最终算法如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;CalculateFibonacciSequence(&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;index)&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(index&amp;nbsp;&amp;lt;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;}&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(index&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;&amp;nbsp;||&amp;nbsp;index&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&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;}&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;[]&amp;nbsp;fibonacciArray&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;[index];&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;fibonacciArray[&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;]&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&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;fibonacciArray[&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;]&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;;&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;innerIndex&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;;&amp;nbsp;innerIndex&amp;nbsp;&amp;lt;&amp;nbsp;fibonacciArray.Length;&amp;nbsp;innerIndex++)&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;{&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;fibonacciArray[innerIndex]&amp;nbsp;=&amp;nbsp;fibonacciArray[innerIndex&amp;nbsp;-&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;]&amp;nbsp;+&amp;nbsp;fibonacciArray[innerIndex&amp;nbsp;-&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&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;}&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;fibonacciArray[index&amp;nbsp;-&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;对于斐波那契数列，通用公式为&lt;font size="2"&gt;Fn=F(n-1)+F(n-2)（n&amp;gt;=2，n&amp;#8712;N*），&lt;/font&gt;直接循环计算一次就可以获得所需的值。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 12pt;"&gt;2、计算&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 12pt;"&gt;1+2+3+4+...+n&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 12pt;"&gt;的值&lt;/span&gt;&lt;/p&gt;&lt;p&gt;递归算法如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;CalculateNumberSequenceCount(&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;index)&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(index&amp;nbsp;&amp;lt;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;}&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;CalculateNumberSequenceCount(index&amp;nbsp;-&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;)&amp;nbsp;+&amp;nbsp;index;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;当数字（index）很大时，用上面的递归算法肯定是有问题的，我们看下最终的算法，如下所示：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;CalculateNumberSequenceCount(&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;index)&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(index&amp;nbsp;&amp;lt;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;}&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;index&amp;nbsp;*&amp;nbsp;(index&amp;nbsp;+&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;)&amp;nbsp;/&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;对于1+2+3+4+...+n，完全是高中数学的等差数列求和的一个特例。1+2+3+4+......+n等于（首项+末项）*项数/2，所以结果为n(n+1)/2 。这个完全可以不用递归来进行计算，公式套用一下就解决了。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 12pt;"&gt;3、计算&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 12pt;"&gt;1-2+3-4+5-6+7+...+n&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 12pt;"&gt;的值&lt;/span&gt;&lt;/p&gt;&lt;p&gt;递归算法如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;CalculateNumberSequence(&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;index)&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(index&amp;nbsp;&amp;lt;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;}&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;index&amp;nbsp;%&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&amp;nbsp;?&amp;nbsp;CalculateNumberSequence(index&amp;nbsp;-&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;)&amp;nbsp;-&amp;nbsp;index&amp;nbsp;:&amp;nbsp;CalculateNumberSequence(index&amp;nbsp;-&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;)&amp;nbsp;+&amp;nbsp;index;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;对于1-2+3-4+5-6+7+...+n，可以分为2种情况，分别为：&lt;/p&gt;&lt;p&gt;（1）当n是偶数时，1-2+3-4+5-6+7+...+n=(1-2)+(3-4)+(5-6)+&amp;#8230;&amp;#8230;+[(n-1)-n]&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =-1&amp;#215;（n/2）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =-n/2&lt;/p&gt;&lt;p&gt;（2）当n是奇数时，1-2+3-4+5-6+7+...+n=(1-2)+(3-4)+(5-6)+&amp;#8230;&amp;#8230;+[(n-2)-(n-1)]+n&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;=-1&amp;#215;(n-1)/2 +n&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =(n+1)/2&lt;/p&gt;&lt;p&gt;因此，最终的算法如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;CalculateCrossNumberSequence(&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;index)&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(index&amp;nbsp;&amp;lt;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;}&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;index&amp;nbsp;%&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&amp;nbsp;?&amp;nbsp;-index&amp;nbsp;/&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;&amp;nbsp;:&amp;nbsp;(index&amp;nbsp;+&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;)&amp;nbsp;/&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;能够用数学解决的问题，尽量不要用递归来进行计算。当然，很多情况还是需要用递归的。这里并不是说递归算法不好，只能说具体问题采用最优方式来解决才是最终的方案，希望对各位有所帮助。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jasenkin/aggbug/2362431.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jasenkin/archive/2012/02/22/recursion_math_algorithm_comparion.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jasenkin/archive/2012/02/19/simple_xml_parse.html</id><title type="text">Xml匹配为对象集合（两种不同的方式）</title><summary type="text">一、前言上一篇随笔主要将实体转换成相应的Xml或者Xml对象，未考虑到属性的Attribute特性，以后有时间再整理一下。本文中的Xml匹配涉及到类的特性和属性的特性，并且对该类的匹配进行了相应的优化，尽量将反射引起的性能问题降低最低（其实，对于对象数量不是很多的Xml匹配，性能是可以忽略不计的）。 二、类图设计主要思路为：通过反射将与类名的节点匹配，然后匹配属性（属性特性名称或者属性名称）值，设计图如下所示： 类图中各个类的作用如下： PropertyAttribute、ClassAttribute、StringExtension、FuncDictionary的作用详见XmlAttri...</summary><published>2012-02-19T03:38:00Z</published><updated>2012-02-19T03:38:00Z</updated><author><name>JasenKin</name><uri>http://www.cnblogs.com/jasenkin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jasenkin/archive/2012/02/19/simple_xml_parse.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jasenkin/archive/2012/02/19/simple_xml_parse.html"/><content type="html"> &lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt;一、前言&lt;/span&gt;&lt;p&gt;上一篇随笔主要将实体转换成相应的Xml或者Xml对象，未考虑到属性的Attribute特性，以后有时间再整理一下。本文中的Xml匹配涉及到类的特性和属性的特性，并且对该类的匹配进行了相应的优化，尽量将反射引起的性能问题降低最低（其实，对于对象数量不是很多的Xml匹配，性能是可以忽略不计的）。&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt;二、类图设计&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;主要思路为：通过反射将与类名的节点匹配，然后匹配属性（属性特性名称或者属性名称）值，设计图如下所示：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/jasenkin/SimpleXmlParse.jpg" width="826" height="482" /&gt;&lt;/p&gt;&lt;p&gt; 类图中各个类的作用如下：&lt;/p&gt;&lt;p&gt; PropertyAttribute、ClassAttribute、StringExtension、FuncDictionary的作用详见&lt;a style="color: rgb(0, 0, 255);" id="cb_post_title_url" class="postTitle2" href="http://www.cnblogs.com/jasenkin/archive/2011/12/31/xmlattribute_entity_parse_and_convert.html"&gt;&lt;font color="#444444"&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;XmlAttribute与实体的转换和匹配方案（附源码）&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;。&lt;/p&gt;&lt;div&gt;AttributeUtility主要用于获取类名和属性名称。&lt;/div&gt;&lt;div&gt;ReflectionUtility主要用于获取类型的属性对象与属性对应的特性名称的字典，为匹配进行优化处理。&lt;/div&gt;&lt;div&gt;XmlParser主要用于匹配Xml为实体对象。&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt; 三、具体实现&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 12pt;"&gt;3.1 &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 12pt;"&gt;ReflectionUtility&lt;/span&gt;&lt;p&gt;该类主要用于获取某个类型的特性名称和相应的属性对象的字典。返回的类型为Dictionary&amp;lt;string, PropertyInfo&amp;gt;，其中Key为属性的特性名称，而非属性名称，Vaule为对应的属性对象。如此设计，主要是方便后续的操作。&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;主要方法为：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public static Dictionary&amp;lt;string, PropertyInfo&amp;gt; GetPropertyMapperDictionary&amp;lt;T&amp;gt;() where T : new()，&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public static Dictionary&amp;lt;string, PropertyInfo&amp;gt; GetPropertyMapperDictionary(Type type) ，&lt;/span&gt;代码如下：&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;class&lt;/span&gt;&amp;nbsp;ReflectionUtility&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;Dictionary&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;PropertyInfo&amp;gt;&amp;nbsp;GetPropertyMapperDictionary&amp;lt;T&amp;gt;()&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;5&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;GetPropertyMapperDictionary(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(T));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;Dictionary&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;PropertyInfo&amp;gt;&amp;nbsp;GetPropertyMapperDictionary(Type&amp;nbsp;type)&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(type&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;13&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;14&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;15&lt;/span&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;List&amp;lt;PropertyInfo&amp;gt;&amp;nbsp;properties&amp;nbsp;=&amp;nbsp;type.GetProperties().ToList();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;16&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&amp;nbsp;nameMapperDic&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Dictionary&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;PropertyInfo&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;17&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;propertyAttributeName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;18&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;19&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(PropertyInfo&amp;nbsp;property&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;properties)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;20&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;21&lt;/span&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;propertyAttributeName&amp;nbsp;=&amp;nbsp;AttributeUtility.GetPropertyName(property);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;22&lt;/span&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;nameMapperDic.Add(propertyAttributeName,&amp;nbsp;property);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;23&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;24&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;25&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;nameMapperDic;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;26&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;27&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;28&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;gt;&amp;nbsp;GetPropertyNames&amp;lt;T&amp;gt;()&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;29&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;30&lt;/span&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;List&amp;lt;PropertyInfo&amp;gt;&amp;nbsp;properties&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(T).GetProperties().ToList();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;31&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&amp;nbsp;propertyNames&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;32&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;33&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(PropertyInfo&amp;nbsp;property&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;properties)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;34&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;35&lt;/span&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;propertyNames.Add(AttributeUtility.GetPropertyName(property));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;36&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;37&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;38&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;propertyNames;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;39&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;40&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 12pt;"&gt;3.2 &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 12pt;"&gt;AttributeUtility&lt;/span&gt;&lt;p&gt;该类主要用于获取某个类型的类的特性名称和属性的特性名称。如果类的特性不存在，则返回类名。如果属性的特性名称不存在，则返回属性的名称。&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;主要方法为：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public static string GetClassName&amp;lt;T&amp;gt;() where T : new()，&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public static string GetClassName(Type type) ，&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public static string GetPropertyName(PropertyInfo property) ，&lt;/span&gt;代码如下：&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;class&lt;/span&gt;&amp;nbsp;AttributeUtility&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;GetClassName&amp;lt;T&amp;gt;()&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;5&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;GetClassName(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(T));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;GetClassName(Type&amp;nbsp;type)&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(type&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;13&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;14&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;15&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;className&amp;nbsp;=&amp;nbsp;type.Name;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;16&lt;/span&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;ClassAttribute[]&amp;nbsp;attributes&amp;nbsp;=&amp;nbsp;type.GetCustomAttributes(&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;17&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(ClassAttribute),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;false&lt;/span&gt;)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;as&lt;/span&gt;&amp;nbsp;ClassAttribute[];&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;18&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;19&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(attributes&amp;nbsp;!=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;attributes.Length&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;20&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;21&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(!&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.IsNullOrWhiteSpace(attributes[&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;].Name))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;22&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;23&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;className&amp;nbsp;=&amp;nbsp;attributes[&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;].Name;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;24&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;25&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;26&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;27&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;className;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;28&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;29&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;30&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;GetPropertyName(PropertyInfo&amp;nbsp;property)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;31&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;32&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(property&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;33&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;34&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;35&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;36&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;37&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;propertyName&amp;nbsp;=&amp;nbsp;property.Name;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;38&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;39&lt;/span&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;PropertyAttribute[]&amp;nbsp;attributes&amp;nbsp;=&amp;nbsp;property.GetCustomAttributes(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(PropertyAttribute),&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;40&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;false&lt;/span&gt;)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;as&lt;/span&gt;&amp;nbsp;PropertyAttribute[];&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;41&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;42&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(attributes&amp;nbsp;!=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;attributes.Length&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;43&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;44&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(!&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.IsNullOrWhiteSpace(attributes[&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;].Name))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;45&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;46&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;propertyName&amp;nbsp;=&amp;nbsp;attributes[&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;].Name;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;47&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;48&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;49&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;50&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;propertyName;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;51&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;52&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 12pt;"&gt;3.2 &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 12pt;"&gt;XmlParser&lt;/span&gt;&lt;p&gt;该类主要通过两种不同的方式匹配Xml为实体对象集合，一种直接通过XmlReader进行只进读取匹配，另外一种通过XElement进行相应的匹配。&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;主要方法为：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public static IList&amp;lt;T&amp;gt; Parse&amp;lt;T&amp;gt;(string xmlContent) where T : new()，&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public static IList&amp;lt;T&amp;gt; Parse&amp;lt;T&amp;gt;(XDocument document) where T : new() ，&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public static IList&amp;lt;T&amp;gt; Parse&amp;lt;T&amp;gt;(IEnumerable&amp;lt;XElement&amp;gt; elements) where T : new()，&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public static IList&amp;lt;T&amp;gt; Parse&amp;lt;T&amp;gt;(XmlReader xmlReader) where T : new() ，&lt;/span&gt;代码如下：&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;class&lt;/span&gt;&amp;nbsp;XmlParser&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;T&amp;gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;xmlContent)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;5&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;7&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.IsNullOrWhiteSpace(xmlContent))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;8&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;10&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;11&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;12&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt;&amp;nbsp;(StringReader&amp;nbsp;reader&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;StringReader(xmlContent))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;13&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;14&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(XmlReader.Create(reader));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;15&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;16&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;17&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;catch&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;18&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;19&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;20&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;21&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;22&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;23&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;T&amp;gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(XDocument&amp;nbsp;document)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;24&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;25&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(document&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;26&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;27&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;28&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;29&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;30&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;className&amp;nbsp;=&amp;nbsp;AttributeUtility.GetClassName&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;31&lt;/span&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;IEnumerable&amp;lt;XElement&amp;gt;&amp;nbsp;elements&amp;nbsp;=&amp;nbsp;document.Root.Elements(className);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;32&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;33&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(elements);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;34&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;35&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;36&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;T&amp;gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(IEnumerable&amp;lt;XElement&amp;gt;&amp;nbsp;elements)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;37&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;38&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(elements&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;elements.Count()&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;39&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;40&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;41&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;42&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;43&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;44&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;45&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&amp;nbsp;propertyDic&amp;nbsp;=&amp;nbsp;ReflectionUtility.GetPropertyMapperDictionary&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;46&lt;/span&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;List&amp;lt;T&amp;gt;&amp;nbsp;entities&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;47&lt;/span&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;IEnumerable&amp;lt;XElement&amp;gt;&amp;nbsp;innerElements&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;48&lt;/span&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;T&amp;nbsp;entity&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;T();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;49&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;50&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(XElement&amp;nbsp;element&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;elements)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;51&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;52&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entity&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;T();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;53&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entities.Add(entity);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;54&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;innerElements&amp;nbsp;=&amp;nbsp;element.Elements();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;55&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;56&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(XElement&amp;nbsp;innerElement&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;innerElements)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;57&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;58&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetPropertyValue&amp;lt;T&amp;gt;(propertyDic,&amp;nbsp;entity,&amp;nbsp;innerElement.Name.ToString(),&amp;nbsp;innerElement.Value);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;59&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;60&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;61&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;62&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;entities;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;63&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;64&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;catch&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;65&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;66&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;67&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;68&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;69&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;70&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;T&amp;gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(XmlReader&amp;nbsp;xmlReader)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;71&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;72&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;73&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;74&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(xmlReader&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;75&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;76&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;77&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;78&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;79&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;ParseXmlReader&amp;lt;T&amp;gt;(xmlReader);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;80&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;81&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;catch&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;82&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;83&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;84&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;85&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;86&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;87&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;T&amp;gt;&amp;nbsp;ParseXmlReader&amp;lt;T&amp;gt;(XmlReader&amp;nbsp;xmlReader)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;88&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;89&lt;/span&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;List&amp;lt;PropertyInfo&amp;gt;&amp;nbsp;properties&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;PropertyInfo&amp;gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(T).GetProperties());&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;90&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&amp;nbsp;propertyDic&amp;nbsp;=&amp;nbsp;ReflectionUtility.GetPropertyMapperDictionary&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;91&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;className&amp;nbsp;=&amp;nbsp;AttributeUtility.GetClassName&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;92&lt;/span&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;IList&amp;lt;T&amp;gt;&amp;nbsp;entities&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;93&lt;/span&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;T&amp;nbsp;entity&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;T();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;94&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;lastElementName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;95&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;96&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;while&lt;/span&gt;&amp;nbsp;(xmlReader.Read())&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;97&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;98&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;switch&lt;/span&gt;&amp;nbsp;(xmlReader.NodeType)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;99&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;100&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;case&lt;/span&gt;&amp;nbsp;XmlNodeType.Element:&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;101&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Equals(xmlReader.Name,&amp;nbsp;className))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;102&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;103&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entity&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;T();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;104&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entities.Add(entity);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;105&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;106&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lastElementName&amp;nbsp;=&amp;nbsp;xmlReader.Name;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;107&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;108&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;case&lt;/span&gt;&amp;nbsp;XmlNodeType.Text:&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;109&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetPropertyValue&amp;lt;T&amp;gt;(propertyDic,&amp;nbsp;entity,&amp;nbsp;lastElementName,&amp;nbsp;xmlReader.Value);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;110&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;111&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;default&lt;/span&gt;:&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;112&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;113&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;114&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;115&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;116&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;entities;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;117&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;118&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;119&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt;&amp;nbsp;SetPropertyValue&amp;lt;T&amp;gt;(Dictionary&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;PropertyInfo&amp;gt;&amp;nbsp;propertyDic,&amp;nbsp;T&amp;nbsp;entity,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;lastElementName,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;value)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;120&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;121&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(!&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.IsNullOrWhiteSpace(lastElementName)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;propertyDic.ContainsKey(lastElementName))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;122&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;123&lt;/span&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;PropertyInfo&amp;nbsp;currentProperty&amp;nbsp;=&amp;nbsp;propertyDic[lastElementName];&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;124&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(currentProperty&amp;nbsp;!=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;currentProperty.CanWrite)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;125&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;126&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt;&amp;nbsp;invokeResult&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;FuncDictionary().DynamicInvoke(currentProperty.PropertyType,&amp;nbsp;value);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;127&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;currentProperty.SetValue(entity,&amp;nbsp;invokeResult,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;128&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;129&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;130&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;131&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;以上两种不同的方式匹配Xml，都是通过var propertyDic = ReflectionUtility.GetPropertyMapperDictionary&amp;lt;T&amp;gt;();来对反射所引起的性能进行了相关的优化。对于多个实体的匹配，只需要执行一次映射获取到属性特性的名称与对应属性的字典，其后的匹配以该字典来进行操作。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt;四&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt;、总结&lt;/span&gt;&lt;/p&gt;&lt;div&gt; &lt;p&gt;与上一篇随笔将对象集合转换为Xml恰恰相反，对于如下类似格式的Xml：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('9671893f-42bd-46ff-9b54-a8ccfe053a43')"&gt;&lt;img style="display: none;" id="code_img_opened_9671893f-42bd-46ff-9b54-a8ccfe053a43" class="code_img_opened" onclick="cnblogs_code_hide('9671893f-42bd-46ff-9b54-a8ccfe053a43',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt;&lt;div id="cnblogs_code_open_9671893f-42bd-46ff-9b54-a8ccfe053a43" class="cnblogs_code_hide"&gt;&lt;div&gt;&amp;lt;MapperInfoItem&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;DefaultName&amp;gt;MapperInfoItemIndex0&amp;lt;/DefaultName&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;CreatedTime&amp;gt;&lt;span style="color: rgb(128, 0, 128);"&gt;2012&lt;/span&gt;/&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;/&lt;span style="color: rgb(128, 0, 128);"&gt;6&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;19&lt;/span&gt;:&lt;span style="color: rgb(128, 0, 128);"&gt;24&lt;/span&gt;:&lt;span style="color: rgb(128, 0, 128);"&gt;34&lt;/span&gt;&amp;lt;/CreatedTime&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;IsActive&amp;gt;True&amp;lt;/IsActive&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;DefaultValue&amp;gt;&lt;span style="color: rgb(128, 0, 128);"&gt;10&lt;/span&gt;&amp;lt;/DefaultValue&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Percent&amp;gt;&lt;span style="color: rgb(128, 0, 128);"&gt;27&lt;/span&gt;&amp;lt;/Percent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;TargetUrl&amp;gt;www.codeplex.com?Id=&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&amp;lt;/TargetUrl&amp;gt;&lt;br /&gt;&amp;lt;/MapperInfoItem&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;本文中以上的代码完全能够对其进行相应的匹配。只不过上一篇随笔中未对类的特性名称和属性的特性名称进行考虑罢了，以后有时间再贴上改进后的代码。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;  &lt;img src="http://www.cnblogs.com/jasenkin/aggbug/2358057.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jasenkin/archive/2012/02/19/simple_xml_parse.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jasenkin/archive/2012/02/19/simpe_xml_converter.html</id><title type="text">实体集合和实体转换成相应的string、XDocument、XElement、XDocument</title><summary type="text">一、前言 上篇随笔主要是针对于Xml的特性Attribute与实体之间的匹配与转换。该篇随笔主要内容为将对象转换成相应的Xml以及XElement。这2篇随笔以不同的方式对Xml进行转换与匹配，每种匹配都采用不同的角度进行操作。本文主要为对象实体的转换，下篇侧重于Xml的匹配。 二、Xml转换 2.1 实体集合转换Xml实体集合转换Xml的方法为：public static string ToXml&lt;T&gt;(IList&lt;T&gt; entities, string rootName = "") where T : new()，通过传入的实体集合对象和Xml根</summary><published>2012-02-19T01:46:00Z</published><updated>2012-02-19T01:46:00Z</updated><author><name>JasenKin</name><uri>http://www.cnblogs.com/jasenkin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jasenkin/archive/2012/02/19/simpe_xml_converter.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jasenkin/archive/2012/02/19/simpe_xml_converter.html"/><content type="html"> &lt;font color="#ff6600" size="5"&gt;&lt;span style="font-size: 18pt;"&gt;一、&lt;/span&gt;前言&lt;/font&gt; &lt;p&gt;上篇随笔主要是针对于Xml的特性Attribute与实体之间的匹配与转换。该篇随笔主要内容为将对象转换成相应的Xml以及XElement。这2篇随笔以不同的方式对Xml进行转换与匹配，每种匹配都采用不同的角度进行操作。本文主要为对象实体的转换，下篇侧重于Xml的匹配。&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;font color="#ff6600" size="5"&gt;&lt;span style="font-size: 18pt;"&gt;二、Xml转换&lt;/span&gt;&lt;/font&gt; &lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 14pt;"&gt;2.1 实体集合转换Xml&lt;/span&gt;&lt;p&gt;实体集合转换Xml的方法为：public static string ToXml&amp;lt;T&amp;gt;(IList&amp;lt;T&amp;gt; entities, string rootName = "") where T : new()，通过传入的实体集合对象和Xml根名称，可以转换成相应的Xml，代码如下：&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;ToXml&amp;lt;T&amp;gt;(IList&amp;lt;T&amp;gt;&amp;nbsp;entities,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;rootName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;""&lt;/span&gt;)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;3&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entities&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;entities.Count&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;5&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;8&lt;/span&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;StringBuilder&amp;nbsp;builder&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;StringBuilder();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;9&lt;/span&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;builder.AppendLine(XmlResource.XmlHeader);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&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;XElement&amp;nbsp;element&amp;nbsp;=&amp;nbsp;ToXElement&amp;lt;T&amp;gt;(entities,&amp;nbsp;rootName);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&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;builder.Append(element.ToString());&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;13&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;14&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;builder.ToString();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;针对于实体集合的转换，转换后的结果如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;lt;?xml&amp;nbsp;version=&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;1.0"&amp;nbsp;encoding="utf-8"&amp;nbsp;?&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;&lt;/span&gt;&amp;lt;MapperInfoSet&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;MapperInfo&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Name&amp;gt;MapperInfoIndex0&amp;lt;/Name&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;CreatedTime&amp;gt;&lt;span style="color: rgb(128, 0, 128);"&gt;2012&lt;/span&gt;-&lt;span style="color: rgb(128, 0, 128);"&gt;02&lt;/span&gt;-19T08:&lt;span style="color: rgb(128, 0, 128);"&gt;54&lt;/span&gt;:&lt;span style="color: rgb(128, 0, 128);"&gt;44.9411601&lt;/span&gt;+&lt;span style="color: rgb(128, 0, 128);"&gt;08&lt;/span&gt;:&lt;span style="color: rgb(128, 0, 128);"&gt;00&lt;/span&gt;&amp;lt;/CreatedTime&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;IsActive&amp;gt;&lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;&amp;lt;/IsActive&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Value&amp;gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Percent&amp;gt;&lt;span style="color: rgb(128, 0, 128);"&gt;50&lt;/span&gt;&amp;lt;/Percent&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;TargetUrl&amp;gt;www.codeplex.com?Id=&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&amp;lt;/TargetUrl&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/MapperInfo&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;MapperInfo&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Name&amp;gt;MapperInfoIndex1&amp;lt;/Name&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;13&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;CreatedTime&amp;gt;&lt;span style="color: rgb(128, 0, 128);"&gt;2012&lt;/span&gt;-&lt;span style="color: rgb(128, 0, 128);"&gt;02&lt;/span&gt;-19T08:&lt;span style="color: rgb(128, 0, 128);"&gt;54&lt;/span&gt;:&lt;span style="color: rgb(128, 0, 128);"&gt;44.9421602&lt;/span&gt;+&lt;span style="color: rgb(128, 0, 128);"&gt;08&lt;/span&gt;:&lt;span style="color: rgb(128, 0, 128);"&gt;00&lt;/span&gt;&amp;lt;/CreatedTime&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;14&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;IsActive&amp;gt;&lt;span style="color: rgb(0, 0, 255);"&gt;false&lt;/span&gt;&amp;lt;/IsActive&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Value&amp;gt;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;16&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Percent&amp;gt;&lt;span style="color: rgb(128, 0, 128);"&gt;50&lt;/span&gt;&amp;lt;/Percent&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;17&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;TargetUrl&amp;gt;www.codeplex.com?Id=&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;&amp;lt;/TargetUrl&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;18&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/MapperInfo&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;19&lt;/span&gt;&amp;nbsp;&amp;lt;/MapperInfoSet&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 14pt;"&gt;2.2 实体转换Xml&lt;/span&gt;&lt;p&gt;实体转换Xml的方法为：public static string ToXml&amp;lt;T&amp;gt;(T entity) where T : new()，通过传入的实体，可以转换成相应的Xml，代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;ToXml&amp;lt;T&amp;gt;(T&amp;nbsp;entity)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;3&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entity&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;5&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;8&lt;/span&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;XElement&amp;nbsp;element&amp;nbsp;=&amp;nbsp;ToXElement&amp;lt;T&amp;gt;(entity);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;element.ToString();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;针对于单个实体的转换，转换后的结果如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&amp;nbsp;&amp;lt;MapperInfo&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Name&amp;gt;MapperInfoIndex0&amp;lt;/Name&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;3&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;CreatedTime&amp;gt;&lt;span style="color: rgb(128, 0, 128);"&gt;2012&lt;/span&gt;-&lt;span style="color: rgb(128, 0, 128);"&gt;02&lt;/span&gt;-19T08:&lt;span style="color: rgb(128, 0, 128);"&gt;59&lt;/span&gt;:&lt;span style="color: rgb(128, 0, 128);"&gt;17.1387289&lt;/span&gt;+&lt;span style="color: rgb(128, 0, 128);"&gt;08&lt;/span&gt;:&lt;span style="color: rgb(128, 0, 128);"&gt;00&lt;/span&gt;&amp;lt;/CreatedTime&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;IsActive&amp;gt;&lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;&amp;lt;/IsActive&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;5&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Value&amp;gt;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Percent&amp;gt;&lt;span style="color: rgb(128, 0, 128);"&gt;50&lt;/span&gt;&amp;lt;/Percent&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;7&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;TargetUrl&amp;gt;www.codeplex.com?Id=&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;&amp;lt;/TargetUrl&amp;gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;8&lt;/span&gt;&amp;nbsp;&amp;lt;/MapperInfo&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 14pt;"&gt;2.3 实体集合转换XElement&lt;/span&gt;&lt;p&gt;实体转换XElement的方法为：public static XElement ToXElement&amp;lt;T&amp;gt;(IList&amp;lt;T&amp;gt; entities, string rootName = "") where T : new()，通过传入的实体集合对象和Xml根名称，可以转换成相应的XElement，代码如下：&lt;/p&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;XElement&amp;nbsp;ToXElement&amp;lt;T&amp;gt;(IList&amp;lt;T&amp;gt;&amp;nbsp;entities,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;rootName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;""&lt;/span&gt;)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;3&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entities&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;entities.Count&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;5&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;8&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.IsNullOrWhiteSpace(rootName))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&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;rootName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(T).Name&amp;nbsp;+&amp;nbsp;XmlResource.XmlRootNameSuffix;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;13&lt;/span&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;XElement&amp;nbsp;element&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;XElement(rootName);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;14&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;15&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(T&amp;nbsp;entity&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;entities)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;16&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;17&lt;/span&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;element.Add(ToXElement&amp;lt;T&amp;gt;(entity));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;18&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;19&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;20&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;element;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;21&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 14pt;"&gt;2.4 实体集合转换XmlDocument&lt;/span&gt;&lt;p&gt;实体转换XmlDocument的方法为：public static XElement ToXmlDocument&amp;lt;T&amp;gt;(IList&amp;lt;T&amp;gt; entities, string rootName = "") where T : new()，通过传入的实体集合对象和Xml根名称，可以转换成相应的XmlDocument，代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;XmlDocument&amp;nbsp;ToXmlDocument&amp;lt;T&amp;gt;(IList&amp;lt;T&amp;gt;&amp;nbsp;entities,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;rootName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;""&lt;/span&gt;)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;3&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entities&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;entities.Count&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;5&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;8&lt;/span&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;XmlDocument&amp;nbsp;xmlDocument&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;XmlDocument();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;9&lt;/span&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;xmlDocument.LoadXml(ToXml&amp;lt;T&amp;gt;(entities,&amp;nbsp;rootName));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;xmlDocument;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 14pt;"&gt;2.5 实体转换XElement&lt;/span&gt;&lt;p&gt;实体转换XElement的方法为：public static string ToXElement&amp;lt;T&amp;gt;(T entity) where T : new()，通过传入的实体，可以转换成相应的XElement，代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;XElement&amp;nbsp;ToXElement&amp;lt;T&amp;gt;(T&amp;nbsp;entity)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;3&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entity&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;5&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;8&lt;/span&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;XElement&amp;nbsp;element&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;XElement(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(T).Name);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;9&lt;/span&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;PropertyInfo[]&amp;nbsp;properties&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(T).GetProperties();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&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;XElement&amp;nbsp;innerElement&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt;&amp;nbsp;propertyValue&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;13&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(PropertyInfo&amp;nbsp;property&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;properties)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;14&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;15&lt;/span&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;propertyValue&amp;nbsp;=&amp;nbsp;property.GetValue(entity,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;16&lt;/span&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;innerElement&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;XElement(property.Name,&amp;nbsp;propertyValue);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;17&lt;/span&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;element.Add(innerElement);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;18&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;19&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;20&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;element;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;21&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 14pt;"&gt;2.6 实体集合转换XDocument&lt;/span&gt;&lt;p&gt;实体转换XDocument的方法为：public static XDocument ToXDocument&amp;lt;T&amp;gt;(IList&amp;lt;T&amp;gt; entities, string rootName = "") where T : new()，通过传入的实体集合对象和Xml根名称，可以转换成相应的XDocument，代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;XDocument&amp;nbsp;ToXDocument&amp;lt;T&amp;gt;(IList&amp;lt;T&amp;gt;&amp;nbsp;entities,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;rootName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;""&lt;/span&gt;)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;3&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entities&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;entities.Count&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;5&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;7&lt;/span&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;&lt;span style="color: rgb(0, 128, 128);"&gt;8&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&amp;nbsp;XDocument.Parse(ToXml&amp;lt;T&amp;gt;(entities,&amp;nbsp;rootName));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;9&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt;三、总结&lt;/span&gt;&lt;/p&gt;&lt;div&gt; &lt;p&gt;以上的代码很少，主要通过重构来使代码简化。当然，将实体集合和实体转换为相应的string、XDocument、XElement、XDocument是非常简单的。单元测试的代码就不贴了，占地方。下篇随笔主要是如何将本文中转换的Xml进行匹配，本文所有的代码如下：&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('268347fe-6feb-4f66-aea1-00d84a85005b')"&gt;&lt;img style="display: none;" id="code_img_opened_268347fe-6feb-4f66-aea1-00d84a85005b" class="code_img_opened" onclick="cnblogs_code_hide('268347fe-6feb-4f66-aea1-00d84a85005b',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt;&lt;div id="cnblogs_code_open_268347fe-6feb-4f66-aea1-00d84a85005b" class="cnblogs_code_hide"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;class&lt;/span&gt;&amp;nbsp;SimpleXmlConverter&lt;br /&gt;&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;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;ToXml&amp;lt;T&amp;gt;(IList&amp;lt;T&amp;gt;&amp;nbsp;entities,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;rootName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;""&lt;/span&gt;)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entities&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;entities.Count&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Empty;&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;}&lt;br /&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;StringBuilder&amp;nbsp;builder&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;StringBuilder();&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;builder.AppendLine(XmlResource.XmlHeader);&lt;br /&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;XElement&amp;nbsp;element&amp;nbsp;=&amp;nbsp;ToXElement&amp;lt;T&amp;gt;(entities,&amp;nbsp;rootName);&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;builder.Append(element.ToString());&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;builder.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;XmlDocument&amp;nbsp;ToXmlDocument&amp;lt;T&amp;gt;(IList&amp;lt;T&amp;gt;&amp;nbsp;entities,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;rootName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;""&lt;/span&gt;)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entities&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;entities.Count&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&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;}&lt;br /&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;XmlDocument&amp;nbsp;xmlDocument&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;XmlDocument();&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;xmlDocument.LoadXml(ToXml&amp;lt;T&amp;gt;(entities,&amp;nbsp;rootName));&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;xmlDocument;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;XDocument&amp;nbsp;ToXDocument&amp;lt;T&amp;gt;(IList&amp;lt;T&amp;gt;&amp;nbsp;entities,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;rootName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;""&lt;/span&gt;)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entities&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;entities.Count&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&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;}&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&amp;nbsp;XDocument.Parse(ToXml&amp;lt;T&amp;gt;(entities,&amp;nbsp;rootName));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;XElement&amp;nbsp;ToXElement&amp;lt;T&amp;gt;(IList&amp;lt;T&amp;gt;&amp;nbsp;entities,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;rootName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;""&lt;/span&gt;)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entities&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;entities.Count&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&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;}&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;&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.IsNullOrWhiteSpace(rootName))&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;{&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;rootName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(T).Name&amp;nbsp;+&amp;nbsp;XmlResource.XmlRootNameSuffix;&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;}&lt;br /&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;XElement&amp;nbsp;element&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;XElement(rootName);&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(T&amp;nbsp;entity&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;entities)&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;{&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;element.Add(ToXElement&amp;lt;T&amp;gt;(entity));&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;}&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;element;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;ToXml&amp;lt;T&amp;gt;(T&amp;nbsp;entity)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entity&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Empty;&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;}&lt;br /&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;XElement&amp;nbsp;element&amp;nbsp;=&amp;nbsp;ToXElement&amp;lt;T&amp;gt;(entity);&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;element.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;XElement&amp;nbsp;ToXElement&amp;lt;T&amp;gt;(T&amp;nbsp;entity)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entity&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&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;}&lt;br /&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;XElement&amp;nbsp;element&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;XElement(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(T).Name);&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;PropertyInfo[]&amp;nbsp;properties&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(T).GetProperties();&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;XElement&amp;nbsp;innerElement&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt;&amp;nbsp;propertyValue&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(PropertyInfo&amp;nbsp;property&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;properties)&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;{&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;propertyValue&amp;nbsp;=&amp;nbsp;property.GetValue(entity,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&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;innerElement&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;XElement(property.Name,&amp;nbsp;propertyValue);&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;element.Add(innerElement);&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;}&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;element;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;XElement&amp;nbsp;ToXElement(Type&amp;nbsp;type)&amp;nbsp;&lt;br /&gt;&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;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(type&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&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;{&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&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;}&lt;br /&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;XElement&amp;nbsp;element&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;XElement(type.Name);&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;PropertyInfo[]&amp;nbsp;properties&amp;nbsp;=&amp;nbsp;type.GetProperties();&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;XElement&amp;nbsp;innerElement&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(PropertyInfo&amp;nbsp;property&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;properties)&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;{&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;innerElement&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;XElement(property.Name,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&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;element.Add(innerElement);&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;}&lt;br /&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;element;&lt;br /&gt;&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;}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;img src="http://www.cnblogs.com/jasenkin/aggbug/2357913.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jasenkin/archive/2012/02/19/simpe_xml_converter.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jasenkin/archive/2012/01/31/2333869.html</id><title type="text">kawei</title><summary type="text">kawei</summary><published>2012-01-31T10:20:00Z</published><updated>2012-01-31T10:20:00Z</updated><author><name>JasenKin</name><uri>http://www.cnblogs.com/jasenkin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jasenkin/archive/2012/01/31/2333869.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jasenkin/archive/2012/01/31/2333869.html"/><content type="html">kawei&lt;img src="http://www.cnblogs.com/jasenkin/aggbug/2333869.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jasenkin/archive/2012/01/31/2333869.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jasenkin/archive/2011/12/31/xmlattribute_entity_parse_and_convert.html</id><title type="text">XmlAttribute与实体的转换和匹配方案（附源码）</title><summary type="text">一、前言 可扩展标记语言 (XML) 是具有结构性的标记语言，可以用来标记数据、定义数据类型，是一种允许用户对自己的标记语言进行定义的源语言。XML是用来存储数据的，重在数据本身。本文中的代码是几个月前整理的，最近几个月的时间很少写随笔，除了工作以外，主要还是忙于整理自己的框架。这篇随笔主要是针对于XML的特性Attribute与实体之间的匹配与转换，其中的内容包括反射、XML以及LinqToXml，代码的内容也是想到什么就写什么，纯属练习下手感，仅供参考。下一篇随笔将以另外的形式来转换Xml为对象实体，当然，也是以反射为主，和本随笔中的思路差不多，主要是XML的格式和解决方案不同而已。对于.</summary><published>2011-12-30T17:14:00Z</published><updated>2011-12-30T17:14:00Z</updated><author><name>JasenKin</name><uri>http://www.cnblogs.com/jasenkin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jasenkin/archive/2011/12/31/xmlattribute_entity_parse_and_convert.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jasenkin/archive/2011/12/31/xmlattribute_entity_parse_and_convert.html"/><content type="html">&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt; 一、前言&lt;/span&gt;&lt;/p&gt; &lt;p&gt;可扩展标记语言 (XML) 是具有结构性的标记语言，可以用来标记数据、定义数据类型，是一种允许用户对自己的标记语言进行定义的源语言。XML是用来存储数据的，重在数据本身。本文中的代码是几个月前整理的，最近几个月的时间很少写随笔，除了工作以外，主要还是忙于整理自己的框架。这篇随笔主要是针对于XML的特性Attribute与实体之间的匹配与转换，其中的内容包括反射、XML以及LinqToXml，代码的内容也是想到什么就写什么，纯属练习下手感，仅供参考。下一篇随笔将以另外的形式来转换Xml为对象实体，当然，也是以反射为主，和本随笔中的思路差不多，主要是XML的格式和解决方案不同而已。对于如何将对象转换成Xml的话，主要还是看情况，仅仅转换简单的对象的话，直接反射就可以生成。对于复杂的对象的话，可以采用dynamic，树结构和递归算法的方案来定制XML。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt;二、类图设计&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 该处的主要思路为：通过反射将与类名（类特性名称或者类名）的节点匹配，然后匹配属性（属性特性名称或者属性名称）值。反之，则遍历实体对象的属性，设置相应的XML。本来还想细化一下匹配与转换操作的，但是该类的EA文件不知道放在哪里了，只有设计的截图还在，XO。相关类图设计如下：&lt;/p&gt;&lt;p&gt;&lt;img style="width: 862px; height: 502px;" alt="" align="middle" src="http://images.cnblogs.com/cnblogs_com/jasenkin/xmlattr001.jpg" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;PropertyAttribute主要设置属性的特性名称，用于转换过程设置属性的别名，同时匹配过程中匹配XML的特性与属性的名称。&lt;/p&gt;&lt;p&gt;&amp;nbsp;ClassAttribute主要设置类的特性名称，用于转换过程设置类的别名，同时匹配过程中匹配XML的节点与类的名称。&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;p&gt;&amp;nbsp;StringExtension主要是字符串的扩展方法。&lt;/p&gt;&lt;p&gt;&amp;nbsp;FuncDictionary主要转换字符串为特定类型的值。&lt;div&gt;&amp;nbsp;XmlAttributeUtility主要转换实体对象为XML以及匹配XML为实体对象，其中还包括一些其他基本操作。&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt; 三、具体实现&lt;/span&gt;&lt;/p&gt;   &lt;p&gt;先看下FuncDictionary，该类主要通过异步委托将字符串转换成相应的简单类型，所有实现围绕该类进行相关操作。FuncDictionary基本涵盖了C#中的所有简单类型，可以将字符串转换成这些简单类型。&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;主要方法为：public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt;&amp;nbsp;DynamicInvoke(Type&amp;nbsp;type,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;arg)，通过传入的类型和字符串值，可以转换成相应的Object值。属性Dictionary中涵盖了所有简单类型转换的委托操作。代码如下：&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;class&lt;/span&gt;&amp;nbsp;FuncDictionary&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IDictionary&amp;lt;Type,&amp;nbsp;Delegate&amp;gt;&amp;nbsp;Dictionary&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;5&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;get&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;6&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;FuncDictionary()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(FuncDictionary.Dictionary&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;13&lt;/span&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;FuncDictionary.Dictionary&amp;nbsp;=&amp;nbsp;CreateDictionary();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;14&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;16&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;17&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt;&amp;nbsp;DynamicInvoke(Type&amp;nbsp;type,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;arg)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;18&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;19&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(type&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;20&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;21&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;22&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;23&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;24&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(FuncDictionary.Dictionary&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;25&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;26&lt;/span&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;FuncDictionary.Dictionary&amp;nbsp;=&amp;nbsp;CreateDictionary();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;27&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;28&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;29&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(!FuncDictionary.Dictionary.ContainsKey(type))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;30&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;31&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;32&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;33&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;34&lt;/span&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;Delegate&amp;nbsp;action&amp;nbsp;=&amp;nbsp;FuncDictionary.Dictionary[type];&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;35&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;36&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;action.DynamicInvoke(&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt;[]&amp;nbsp;{&amp;nbsp;arg&amp;nbsp;});&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;37&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;38&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;39&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IDictionary&amp;lt;Type,&amp;nbsp;Delegate&amp;gt;&amp;nbsp;CreateDictionary()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;40&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;41&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&amp;nbsp;dictionary&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Dictionary&amp;lt;Type,&amp;nbsp;Delegate&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;42&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;43&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;44&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;decimal&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;decimal&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsDecimal()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;45&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(DateTime),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;DateTime&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsDateTime()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;46&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;float&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;float&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsFloat()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;47&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;double&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;double&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsDouble()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;48&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsInt()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;49&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;byte&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;byte&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsByte()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;50&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;sbyte&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;sbyte&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsSbyte()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;51&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;short&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;short&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsShort()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;52&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;ushort&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;ushort&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsUshort()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;53&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;uint&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;uint&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsUint()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;54&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;long&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;long&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsLong()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;55&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;ulong&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;ulong&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsUlong()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;56&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;char&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;char&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsChar()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;57&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;bool&lt;/span&gt;),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;bool&lt;/span&gt;&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsBool()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;58&lt;/span&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;dictionary.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(Color),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Func&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;,&amp;nbsp;Color&amp;gt;(p&amp;nbsp;=&amp;gt;&amp;nbsp;p.AsColor()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;59&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;60&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;dictionary;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;61&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;62&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;   &lt;p&gt;&amp;nbsp;再看下XmlAttributeUtility类，该类主要包括转换和匹配操作。匹配主要为两种方案（主要逻辑为以下代码的72-183行）：&lt;/p&gt;&lt;p&gt;1、通过XmlReader顺序读取来设置实体的值，主要方法为&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;T&amp;gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(XmlReader&amp;nbsp;reader)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()：&lt;/p&gt;&lt;p&gt;2、通过遍历XmlNodeList中的节点，依次遍历节点中的XmlAttribute设置实体的属性的值，主要方法为：&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;T&amp;gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(XmlNodeList&amp;nbsp;nodeList)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;T&amp;gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;inputUri,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;parentXPath)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;3&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(!File.Exists(inputUri)&amp;nbsp;||&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.IsNullOrWhiteSpace(parentXPath))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;5&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;8&lt;/span&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;XmlDocument&amp;nbsp;document&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;XmlDocument();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;9&lt;/span&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;document.Load(inputUri);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;10&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;11&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(document,&amp;nbsp;parentXPath);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;12&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;13&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;14&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;T&amp;gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(XmlDocument&amp;nbsp;document,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;parentXPath)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;16&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(document&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.IsNullOrWhiteSpace(parentXPath))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;17&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;18&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;19&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;20&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;21&lt;/span&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;XmlNode&amp;nbsp;parentNode&amp;nbsp;=&amp;nbsp;document.DocumentElement.SelectSingleNode(parentXPath);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;22&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;23&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(parentNode&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;24&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;25&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;26&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;27&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;28&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(parentNode);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;29&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;30&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;31&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;T&amp;gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(XmlNode&amp;nbsp;parentNode)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;32&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;33&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(parentNode&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;!parentNode.HasChildNodes)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;34&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;35&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;36&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;37&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;38&lt;/span&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;XmlNodeList&amp;nbsp;nodeList&amp;nbsp;=&amp;nbsp;parentNode.ChildNodes;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;39&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;40&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(nodeList);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;41&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;42&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;43&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;T&amp;gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(XmlNodeList&amp;nbsp;nodeList)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;44&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;45&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(nodeList&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;nodeList.Count&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;46&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;47&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;48&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;49&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;50&lt;/span&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;List&amp;lt;T&amp;gt;&amp;nbsp;entities&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;51&lt;/span&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;AddEntities&amp;lt;T&amp;gt;(nodeList,&amp;nbsp;entities);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;52&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;53&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;entities;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;54&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;55&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;56&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;T&amp;gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;inputUri)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;57&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;58&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(!File.Exists(inputUri))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;59&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;60&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;61&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;62&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;63&lt;/span&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;XmlReaderSettings&amp;nbsp;settings&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;XmlReaderSettings();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;64&lt;/span&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;settings.IgnoreComments&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;65&lt;/span&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;settings.IgnoreWhitespace&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;66&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;67&lt;/span&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;XmlReader&amp;nbsp;reader&amp;nbsp;=&amp;nbsp;XmlReader.Create(inputUri,&amp;nbsp;settings);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;68&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;69&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(reader);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;70&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;71&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;72&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;T&amp;gt;&amp;nbsp;Parse&amp;lt;T&amp;gt;(XmlReader&amp;nbsp;reader)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;73&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;74&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(reader&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;75&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;76&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;77&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;78&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;79&lt;/span&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;reader.ReadStartElement();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;80&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;className&amp;nbsp;=&amp;nbsp;GetClassName&amp;lt;T&amp;gt;();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;81&lt;/span&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;List&amp;lt;PropertyInfo&amp;gt;&amp;nbsp;properties&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(T).GetProperties().ToList();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;82&lt;/span&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;List&amp;lt;T&amp;gt;&amp;nbsp;entities&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;83&lt;/span&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;T&amp;nbsp;entity&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;T();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;84&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;85&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;while&lt;/span&gt;&amp;nbsp;(!reader.EOF)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;86&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;87&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(!&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Equals(reader.Name,&amp;nbsp;className)&amp;nbsp;||&amp;nbsp;!reader.IsStartElement())&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;88&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;89&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reader.Read();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;90&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;continue&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;91&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;92&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;93&lt;/span&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;entity&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;T();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;94&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;95&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(!reader.HasAttributes)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;96&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;97&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entities.Add(entity);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;98&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reader.Read();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;99&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;continue&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;100&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;101&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;102&lt;/span&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;SetPropertyValue&amp;lt;T&amp;gt;(reader,&amp;nbsp;properties,&amp;nbsp;entity);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;103&lt;/span&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;entities.Add(entity);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;104&lt;/span&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;reader.Read();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;105&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;106&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;107&lt;/span&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;reader.Close();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;108&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;109&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;entities;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;110&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;span style="color: rgb(0, 128, 128);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;152&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;153&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt;&amp;nbsp;AddEntities&amp;lt;T&amp;gt;(XmlNodeList&amp;nbsp;nodeList,&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;154&lt;/span&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;List&amp;lt;T&amp;gt;&amp;nbsp;entities)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;155&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;156&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;className&amp;nbsp;=&amp;nbsp;GetClassName&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;157&lt;/span&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;List&amp;lt;PropertyInfo&amp;gt;&amp;nbsp;properties&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(T).GetProperties().ToList();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;158&lt;/span&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;T&amp;nbsp;entity&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;T();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;159&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;160&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(XmlNode&amp;nbsp;xmlNode&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;nodeList)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;161&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;162&lt;/span&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;XmlElement&amp;nbsp;element&amp;nbsp;=&amp;nbsp;xmlNode&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;as&lt;/span&gt;&amp;nbsp;XmlElement;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;163&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(element&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;!&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Equals(className,&amp;nbsp;element.Name))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;164&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;165&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;continue&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;166&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;167&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;168&lt;/span&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;entity&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;T();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;169&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(!element.HasAttributes)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;170&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;171&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entities.Add(entity);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;172&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;continue&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;173&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;174&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;175&lt;/span&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;XmlAttributeCollection&amp;nbsp;attributes&amp;nbsp;=&amp;nbsp;element.Attributes;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;176&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(XmlAttribute&amp;nbsp;attribute&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;attributes)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;177&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;178&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetPropertyValue&amp;lt;T&amp;gt;(properties,&amp;nbsp;entity,&amp;nbsp;attribute.Name,&amp;nbsp;attribute.Value);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;179&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;180&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;181&lt;/span&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;entities.Add(entity);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;182&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;183&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;184&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;185&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt;&amp;nbsp;SetPropertyValue&amp;lt;T&amp;gt;(XmlReader&amp;nbsp;reader,&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;186&lt;/span&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;List&amp;lt;PropertyInfo&amp;gt;&amp;nbsp;properties,&amp;nbsp;T&amp;nbsp;entity)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;187&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;188&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;while&lt;/span&gt;&amp;nbsp;(reader.MoveToNextAttribute())&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;189&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;190&lt;/span&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;SetPropertyValue&amp;lt;T&amp;gt;(properties,&amp;nbsp;entity,&amp;nbsp;reader.Name,&amp;nbsp;reader.Value);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;191&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;192&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;193&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;194&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt;&amp;nbsp;SetPropertyValue&amp;lt;T&amp;gt;(List&amp;lt;PropertyInfo&amp;gt;&amp;nbsp;properties,&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;195&lt;/span&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;T&amp;nbsp;entity,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;name,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;value)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;196&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;197&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&amp;nbsp;property&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;properties)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;198&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;199&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(!property.CanWrite)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;200&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;201&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;continue&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;202&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;203&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;204&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;propertyName&amp;nbsp;=&amp;nbsp;GetPropertyName(property);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;205&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;206&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Equals(name,&amp;nbsp;propertyName))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;207&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;208&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FuncDictionary&amp;nbsp;action&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;FuncDictionary();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;209&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt;&amp;nbsp;invokeResult&amp;nbsp;=&amp;nbsp;action.DynamicInvoke(property.PropertyType,&amp;nbsp;value);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;210&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;211&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;property.SetValue(entity,&amp;nbsp;invokeResult,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;212&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;213&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;214&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;div&gt;XmlAttributeUtility的转换操作相对来说比较简单，采用反射+LinqToXml转换操作就很简单了，主要实现方法为&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;XElement&amp;nbsp;Convert&amp;lt;T&amp;gt;(T&amp;nbsp;entity)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()，其他方法都是以该方法作为基础来进行操作。为什么用LinqToXml？主要原因是LinqToXml比Xml更方便，很多细节方面不需要考虑太多。代码如下：&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;ConvertToString&amp;lt;T&amp;gt;(List&amp;lt;T&amp;gt;&amp;nbsp;entities)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;3&lt;/span&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;List&amp;lt;XElement&amp;gt;&amp;nbsp;elements&amp;nbsp;=&amp;nbsp;Convert&amp;lt;T&amp;gt;(entities);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;4&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(elements&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;elements.Count&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;6&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;9&lt;/span&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;StringBuilder&amp;nbsp;builder&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;StringBuilder();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&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;elements.ForEach(p&amp;nbsp;=&amp;gt;&amp;nbsp;builder.AppendLine(p.ToString()));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;builder.ToString();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;13&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;14&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;List&amp;lt;XElement&amp;gt;&amp;nbsp;Convert&amp;lt;T&amp;gt;(List&amp;lt;T&amp;gt;&amp;nbsp;entities)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;16&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;17&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entities&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;entities.Count&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;18&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;19&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;XElement&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;20&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;21&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;22&lt;/span&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;List&amp;lt;XElement&amp;gt;&amp;nbsp;elements&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;XElement&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;23&lt;/span&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;XElement&amp;nbsp;element;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;24&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;25&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&amp;nbsp;entity&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;entities)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;26&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;27&lt;/span&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;element&amp;nbsp;=&amp;nbsp;Convert&amp;lt;T&amp;gt;(entity);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;28&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(element&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;29&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;30&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;continue&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;31&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;32&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;33&lt;/span&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;elements.Add(element);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;34&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;35&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;36&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;elements;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;37&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;38&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;39&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;ConvertToString&amp;lt;T&amp;gt;(T&amp;nbsp;entity)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;40&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;41&lt;/span&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;XElement&amp;nbsp;element&amp;nbsp;=&amp;nbsp;Convert&amp;lt;T&amp;gt;(entity);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;42&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;element&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;?&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Empty&amp;nbsp;:&amp;nbsp;element.ToString();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;43&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;44&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;45&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;XElement&amp;nbsp;Convert&amp;lt;T&amp;gt;(T&amp;nbsp;entity)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;where&lt;/span&gt;&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;46&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;47&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(entity&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;48&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;49&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;50&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;51&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;52&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;className&amp;nbsp;=&amp;nbsp;GetClassName&amp;lt;T&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;53&lt;/span&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;XElement&amp;nbsp;element&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;XElement(className);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;54&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;55&lt;/span&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;List&amp;lt;PropertyInfo&amp;gt;&amp;nbsp;properties&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(T).GetProperties().ToList();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;56&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;propertyName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;57&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt;&amp;nbsp;propertyValue&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;58&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;59&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(PropertyInfo&amp;nbsp;property&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;properties)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;60&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;61&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(property.CanRead)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;62&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;63&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;propertyName&amp;nbsp;=&amp;nbsp;GetPropertyName(property);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;64&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;propertyValue&amp;nbsp;=&amp;nbsp;property.GetValue(entity,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;65&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(property.PropertyType.Name&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;Color&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;66&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;67&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;propertyValue&amp;nbsp;=&amp;nbsp;ColorTranslator.ToHtml((Color)propertyValue);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;68&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;69&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;element.SetAttributeValue(propertyName,&amp;nbsp;propertyValue);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;70&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;71&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;72&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;73&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;element;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;74&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&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;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt;四、单元测试&lt;/span&gt;&lt;/p&gt; &lt;p&gt;  &lt;/p&gt;&lt;p&gt;&amp;nbsp;FuncDictionary的单元测试必须涵盖所有类型的测试才能将代码覆盖率达到100%，此处只针对DateTime做正常测试、异常测试和空值测试（当然，对于其他类型的方法，可能还需要做脚本测试，SQL注入测试等，这三种类型的测试是最基本的测试），主要测试代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt;&amp;nbsp;DynamicInvokeTest()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;4&lt;/span&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;FuncDictionary&amp;nbsp;target&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;FuncDictionary();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;5&lt;/span&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;Type&amp;nbsp;type&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(DateTime);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;6&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;arg&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;DateTime(&lt;span style="color: rgb(128, 0, 128);"&gt;2011&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;9&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;5&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;18&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;18&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;18&lt;/span&gt;).ToString();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;8&lt;/span&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;DateTime&amp;nbsp;result&amp;nbsp;=&amp;nbsp;(DateTime)target.DynamicInvoke(type,&amp;nbsp;arg);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;9&lt;/span&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;Assert.AreEqual(result.Year,&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2011&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&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;Assert.AreEqual(result.Month,&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;9&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&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;Assert.AreEqual(result.Day,&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;5&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&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;Assert.AreEqual(result.Hour,&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;18&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;13&lt;/span&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;Assert.AreEqual(result.Minute,&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;18&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;14&lt;/span&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;Assert.AreEqual(result.Second,&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;18&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;16&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;17&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;18&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt;&amp;nbsp;DynamicInvokeWithNullOrEmptyArgsTest()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;19&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;20&lt;/span&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;FuncDictionary&amp;nbsp;target&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;FuncDictionary();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;21&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;22&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt;&amp;nbsp;result&amp;nbsp;=&amp;nbsp;target.DynamicInvoke(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(DateTime),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;23&lt;/span&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;Assert.AreEqual((DateTime)result,DateTime.MinValue);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;24&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;25&lt;/span&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;result&amp;nbsp;=&amp;nbsp;target.DynamicInvoke(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(DateTime),&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Empty);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;26&lt;/span&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;Assert.AreEqual((DateTime)result,&amp;nbsp;DateTime.MinValue);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;27&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;28&lt;/span&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;result&amp;nbsp;=&amp;nbsp;target.DynamicInvoke(&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Empty);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;29&lt;/span&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;Assert.AreEqual(result,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;30&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;31&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;32&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;33&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt;&amp;nbsp;DynamicInvokeWithInvalidArgsTest()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;34&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;35&lt;/span&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;FuncDictionary&amp;nbsp;target&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;FuncDictionary();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;36&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;37&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt;&amp;nbsp;result&amp;nbsp;=&amp;nbsp;target.DynamicInvoke(&lt;span style="color: rgb(0, 0, 255);"&gt;typeof&lt;/span&gt;(DateTime),&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;w007&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;38&lt;/span&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;Assert.AreEqual((DateTime)result,&amp;nbsp;DateTime.MinValue);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;39&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;其他代码的单元测试详细见源代码，也仅仅只做了些基本的测试，写测试比写代码费哥的时间，&lt;img alt="" src="http://www.cnblogs.com/Emoticons/msn/72_72.gif" /&gt;。 &lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt;五、总结&lt;/span&gt;&lt;/p&gt; &lt;p&gt;    以上的代码仅仅是当时想着怎么实现就怎么写的，完全是随意而写。仅供参考，实战没有多大意义，纯粹练习下灵感和手感，增强对技术的敏感性而已，纯属娱乐。对于&lt;div&gt;&amp;lt;Lexer LexerName="Name0" FontColor="#EE2BA9" CreatedTime="2011-10-25T21:16:18.7866084+08:00" Count="0" Exist="true" LineCommentPrefix="LineCommentPrefix0" StreamCommentPrefix="StreamCommentPrefix0" StreamCommentSuffix="StreamCommentSuffix0" /&amp;gt;此类格式的Xml转换和匹配，以上的代码完全能够满足该需求。下一篇将讲述另外一种格式的匹配，不过也是通过反射和XmlReader来进行匹配的。&lt;/div&gt;今天也是2011年最后一天，明天就是2012年了，在此恭祝大家2012元旦快乐，新一年，日子顺心多平安；新一年，祝福多多又暖暖；新一年，愿望件件都圆满；新一年，幸福快乐早实现；新一年，元旦祝福围身边；玛雅终结之年到了，所以，为了拯救人类，一定要快乐哦！&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;源码下载：&lt;a style="color: rgb(0, 0, 128);" title="XmlAttribute转换和匹配源代码" href="http://files.cnblogs.com/jasenkin/Jasen.Framework.XmlAttr.rar"&gt;XmlAttribute转换和匹配源代码&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt; &lt;img src="http://www.cnblogs.com/jasenkin/aggbug/2308301.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jasenkin/archive/2011/12/31/xmlattribute_entity_parse_and_convert.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jasenkin/archive/2011/11/08/2240563.html</id><title type="text">lINE</title><summary type="text">/Files/jasenkin/CircularDependencyTool.zip</summary><published>2011-11-07T23:31:00Z</published><updated>2011-11-07T23:31:00Z</updated><author><name>JasenKin</name><uri>http://www.cnblogs.com/jasenkin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jasenkin/archive/2011/11/08/2240563.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jasenkin/archive/2011/11/08/2240563.html"/><content type="html"> &lt;a href="http://files.cnblogs.com/jasenkin/CircularDependencyTool.zip"&gt;/Files/jasenkin/CircularDependencyTool.zip&lt;/a&gt;&lt;img src="http://www.cnblogs.com/jasenkin/aggbug/2240563.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jasenkin/archive/2011/11/08/2240563.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jasenkin/archive/2011/10/24/ironruby_ruby_class_tree.html</id><title type="text">IronRuby实现对Ruby类相关信息的树结构显示（C#）</title><summary type="text">一、前言IronRuby是.NET下的一个Ruby实现，此外还有Ruby.net这一开源项目，二者的主要区别是IronRuby利用了Microsoft最新推出的DLR，而Ruby.net则是完全利用原有的CLR实现的。IronRuby入门可参阅http://msdn.microsoft.com/zh-cn/magazine/dd434651.aspx。关于IronRuby的一些基本操作，本文不会涉及，本文仅仅是IronRuby对Ruby操作的一个具体实例。其中包括对所有Ruby类的类名，方法名以及参数列表的获取与显示相关的树结构。究其原因采用IronRuby来进行操作，主要是因为通过Ruby的</summary><published>2011-10-24T15:00:00Z</published><updated>2011-10-24T15:00:00Z</updated><author><name>JasenKin</name><uri>http://www.cnblogs.com/jasenkin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jasenkin/archive/2011/10/24/ironruby_ruby_class_tree.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jasenkin/archive/2011/10/24/ironruby_ruby_class_tree.html"/><content type="html">&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt;一、前言&lt;/span&gt;&lt;/p&gt;&lt;p&gt;IronRuby是.NET下的一个Ruby实现，此外还有Ruby.net这一开源项目，二者的主要区别是IronRuby利用了Microsoft最新推出的DLR，而Ruby.net则是完全利用原有的CLR实现的。IronRuby入门可参阅&lt;a href="http://msdn.microsoft.com/zh-cn/magazine/dd434651.aspx"&gt;http://msdn.microsoft.com/zh-cn/magazine/dd434651.aspx&lt;/a&gt;。关于IronRuby的一些基本操作，本文不会涉及，本文仅仅是IronRuby对Ruby操作的一个具体实例。其中包括对所有Ruby类的类名，方法名以及参数列表的获取与显示相关的树结构。究其原因采用IronRuby来进行操作，主要是因为通过Ruby的反射可以获取到Ruby方法名列表，但是获取不到方法的参数列表与参数名称。此文仅供参考，因为本人也对IronRuby接触不是很久，基本上是摸索出来的，难免会有错误的地方。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt;二、类图设计&lt;/span&gt;&lt;/p&gt;&lt;p&gt;相关类图设计如下，其中RubyScriptEngine主要负责通过IronRuby来获取和构造相关的类名、方法名与参数列表以及之间的相关关系。TreeDrawer主要负责设计类名、方法名与参数列表相对应的树形结构图。&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/jasenkin/IronRubyEAImage.png" width="1191" height="555" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt;三、详细设计&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;（1）&lt;/span&gt;RubyScriptEngine主要负责通过IronRuby来获取和构造相关的类名、方法名与参数列表以及之间的相关关系。RubyScriptEngine将Ruby文件进行加载，然后动态获取文件中包含的类、方法与方法参数列表。&lt;/p&gt;&lt;p&gt;具体代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;class&lt;/span&gt;&amp;nbsp;RubyScriptEngine&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;readonly&lt;/span&gt;&amp;nbsp;ScriptEngine&amp;nbsp;engine&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;RubyScriptEngine()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;7&lt;/span&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;engine&amp;nbsp;=&amp;nbsp;Ruby.CreateEngine();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;10&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;bool&lt;/span&gt;&amp;nbsp;InitRelativeFiles(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;directory)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;11&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;12&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(!Directory.Exists(directory))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;13&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;14&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;false&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;16&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;17&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;[]&amp;nbsp;files&amp;nbsp;=&amp;nbsp;Directory.GetFiles(directory);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;18&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;index&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;;&amp;nbsp;index&amp;nbsp;&amp;lt;&amp;nbsp;files.Length;&amp;nbsp;index++)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;19&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;20&lt;/span&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;InitRelativeFile(files[index]);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;21&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;22&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;23&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;24&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;25&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;26&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;bool&lt;/span&gt;&amp;nbsp;InitRelativeFile(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;fileName)&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;27&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;28&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(!File.Exists(fileName))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;29&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;30&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;false&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;31&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;32&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;33&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;34&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;35&lt;/span&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;FileInfo&amp;nbsp;fileInfo&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;FileInfo(fileName);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;36&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Equals(fileInfo.Extension,&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;.rb&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;,&amp;nbsp;StringComparison.CurrentCultureIgnoreCase))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;37&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;38&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;engine.ExecuteFile(fileName);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;39&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;40&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;41&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;catch&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;42&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;43&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;false&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;44&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;45&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;46&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;47&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;48&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;49&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;gt;&amp;nbsp;GetClassNames()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;50&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;51&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&amp;nbsp;engine.Runtime.Globals.GetVariableNames().ToList();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;52&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;53&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;54&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;IList&amp;lt;ClassItem&amp;gt;&amp;nbsp;GetClassesInfos()&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;55&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;56&lt;/span&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;IList&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;gt;&amp;nbsp;names&amp;nbsp;=&amp;nbsp;GetClassNames();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;57&lt;/span&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;IList&amp;lt;ClassItem&amp;gt;&amp;nbsp;items&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;ClassItem&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;58&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;name&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;names)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;59&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;60&lt;/span&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;items.Add(GetClassInfo(name));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;61&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;62&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;63&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;items;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;64&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;65&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;66&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt;&amp;nbsp;ClassItem&amp;nbsp;GetClassInfo(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;className,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;params&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt;[]&amp;nbsp;parameters)&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;67&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;68&lt;/span&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;RubyClass&amp;nbsp;rubyClass&amp;nbsp;=&amp;nbsp;engine.Runtime.Globals.GetVariable(className);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;69&lt;/span&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;dynamic&amp;nbsp;instance&amp;nbsp;=&amp;nbsp;engine.Operations.CreateInstance(rubyClass,&amp;nbsp;parameters);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;70&lt;/span&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;ClassItem&amp;nbsp;classItem&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;ClassItem(className);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;71&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;72&lt;/span&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;IList&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;gt;&amp;nbsp;memberNames&amp;nbsp;=&amp;nbsp;engine.Operations.GetMemberNames(instance);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;73&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;74&lt;/span&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;MethodItem&amp;nbsp;methodItem&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;75&lt;/span&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;ParameterItem&amp;nbsp;parameterItem&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;76&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;memberName&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;memberNames)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;77&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;78&lt;/span&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;RubyMethodInfo&amp;nbsp;methodInfo&amp;nbsp;=&amp;nbsp;rubyClass.GetMethod(memberName)&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;as&lt;/span&gt;&amp;nbsp;RubyMethodInfo;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;79&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;80&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(methodInfo&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;81&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;82&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;continue&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;83&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;84&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;85&lt;/span&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;methodItem&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;MethodItem(memberName,className);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;86&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;87&lt;/span&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;RubyArray&amp;nbsp;parameterArray&amp;nbsp;=&amp;nbsp;methodInfo.GetRubyParameterArray();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;88&lt;/span&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;SimpleAssignmentExpression[]&amp;nbsp;expressions&amp;nbsp;=&amp;nbsp;methodInfo.Parameters.Optional;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;89&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;90&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;index&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;;&amp;nbsp;index&amp;nbsp;&amp;lt;&amp;nbsp;parameterArray.Count;&amp;nbsp;index++)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;91&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;92&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RubyArray&amp;nbsp;vas&amp;nbsp;=&amp;nbsp;parameterArray[index]&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;as&lt;/span&gt;&amp;nbsp;RubyArray;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;93&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;type&amp;nbsp;=&amp;nbsp;vas[&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;].ToString();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;94&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;name&amp;nbsp;=&amp;nbsp;vas[&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;].ToString();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;95&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterItem&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;ParameterItem(name);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;96&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(type&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;rest&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;97&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;98&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterItem.DefaultName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;*&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&amp;nbsp;+&amp;nbsp;name;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;99&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterItem.Description&amp;nbsp;=&amp;nbsp;RubyResource.ArrayParamDesc;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;100&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;101&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;else&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(type&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;opt&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;102&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;103&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;eindex&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;;&amp;nbsp;eindex&amp;nbsp;&amp;lt;&amp;nbsp;expressions.Length;&amp;nbsp;eindex++)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;104&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;105&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SimpleAssignmentExpression&amp;nbsp;ex&amp;nbsp;=&amp;nbsp;expressions[eindex];&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;106&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Variable&amp;nbsp;variable&amp;nbsp;=&amp;nbsp;ex.Left&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;as&lt;/span&gt;&amp;nbsp;Variable;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;107&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(!&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.Equals(variable.Name,&amp;nbsp;name))&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;108&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;109&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;continue&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;110&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;111&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;112&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Literal&amp;nbsp;literal&amp;nbsp;=&amp;nbsp;ex.Right&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;as&lt;/span&gt;&amp;nbsp;Literal;&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;&lt;span style="color: rgb(0, 128, 128);"&gt;113&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterItem.DefaultName&amp;nbsp;=&amp;nbsp;name;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;114&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterItem.DefaultValue&amp;nbsp;=&amp;nbsp;literal.Value;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;115&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterItem.Description&amp;nbsp;=&amp;nbsp;RubyResource.DefaultParamDesc;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;116&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;117&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;118&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;else&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(type&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;block&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;119&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;120&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterItem.DefaultName&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&amp;nbsp;+&amp;nbsp;name;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;121&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterItem.Description&amp;nbsp;=&amp;nbsp;RubyResource.BlockParamDesc;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;122&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;123&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;124&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;125&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterItem.DefaultName&amp;nbsp;=&amp;nbsp;name;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;126&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;127&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;methodItem.Parameters.Add(parameterItem);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;128&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;129&lt;/span&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;classItem.Methods.Add(methodItem);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;130&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;131&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;132&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;classItem;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;133&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;134&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;其中相关方法如下：&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;bool&lt;/span&gt; InitRelativeFiles(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; directory)&amp;nbsp;&amp;nbsp;根据目录加载目录下的Ruby文件&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;bool&lt;/span&gt; InitRelativeFile(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; fileName)&amp;nbsp;&amp;nbsp;&amp;nbsp; 根据文件名加载该Ruby文件&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt; IList&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;gt; GetClassNames()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 获取所有的类名&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt; IList&amp;lt;ClassItem&amp;gt; GetClassesInfos()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;获取所有类的信息&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt; ClassItem GetClassInfo(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; className, &lt;span style="color: rgb(0, 0, 255);"&gt;params&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt;[] parameters)&amp;nbsp;&amp;nbsp;&amp;nbsp; 根据类名和类的构造函数参数获取对应的类信息&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;类的信息显示效果如下（左侧显示类的信息，右侧编辑器显示类的基本结构）：&lt;br /&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/jasenkin/IronRuby002.jpg" width="912" height="689" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;（2）&lt;/span&gt;TreeDrawer主要用于绘制类的树结构，根据不同的类结构显示不同的效果。这里是用Winform来显示的，本来打算用Silverlight来实现，但是由于时间关系，将就着这样算了。当然，Silverlight显示的效果比Winform强多了，而且，本人Silverlight水平比Winform熟练很多（以前项目中用Silverlight动态绘制相关图形，因此比较熟悉）....&lt;/p&gt;&lt;p&gt;TreeDrawer的主要方法为以下2个：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;Bitmap&amp;nbsp;CreateImage(ClassItem&amp;nbsp;classItem,&amp;nbsp;Font&amp;nbsp;font)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;3&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(classItem&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;||&amp;nbsp;font&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;5&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;8&lt;/span&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;ClassBlock&amp;nbsp;classBlock&amp;nbsp;=&amp;nbsp;CreateCurrentClassBlock(classItem);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;nbsp;9&lt;/span&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;AddLinesAndBlockTexts(classBlock,&amp;nbsp;font);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&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;Bitmap&amp;nbsp;bitmap&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Bitmap(&lt;span style="color: rgb(128, 0, 128);"&gt;3&lt;/span&gt;&amp;nbsp;*&amp;nbsp;BLOCK_WIDTH&amp;nbsp;+&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;&amp;nbsp;*&amp;nbsp;BLOCK_INNER_WIDTH,&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.Height);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&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;Graphics&amp;nbsp;graphics&amp;nbsp;=&amp;nbsp;Graphics.FromImage(bitmap);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;13&lt;/span&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;graphics.Clear(Color.White);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;14&lt;/span&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;Pen&amp;nbsp;ellipsePen&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Pen(Color.Blue,&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;15&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;16&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(Line&amp;nbsp;line&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.Lines)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;17&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;18&lt;/span&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;graphics.DrawLine(ellipsePen,&amp;nbsp;line.X1,&amp;nbsp;line.Y1,&amp;nbsp;line.X2,&amp;nbsp;line.Y2);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;19&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(line.HasArrow)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;20&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;21&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PointF[]&amp;nbsp;points&amp;nbsp;=&amp;nbsp;CreateArrowPoints(&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;PointF(line.X1,&amp;nbsp;line.Y1),&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;22&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;PointF(line.X2,&amp;nbsp;line.Y2),&amp;nbsp;ARROW_LENGTH,&amp;nbsp;RELATIVE_VALUE);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;23&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DrawArrowHead(graphics,&amp;nbsp;points);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;24&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;25&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;26&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;27&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(BlockText&amp;nbsp;content&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.Contents)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;28&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;29&lt;/span&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;graphics.DrawString(content.Content,&amp;nbsp;font,&amp;nbsp;Brushes.Black,&amp;nbsp;content.StartX,&amp;nbsp;content.StartY);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;30&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;31&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;32&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;bitmap;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;33&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;34&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;35&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt;&amp;nbsp;ClassBlock&amp;nbsp;CreateCurrentClassBlock(ClassItem&amp;nbsp;classItem)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;36&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;37&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;originalParamY&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;38&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;lastParamY&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;39&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;currentParamY&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;40&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;currentMethodY&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;41&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;startMethodX&amp;nbsp;=&amp;nbsp;BLOCK_WIDTH&amp;nbsp;+&amp;nbsp;BLOCK_INNER_WIDTH;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;42&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;startParamX&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;&amp;nbsp;*&amp;nbsp;BLOCK_WIDTH&amp;nbsp;+&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;&amp;nbsp;*&amp;nbsp;BLOCK_INNER_WIDTH;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;43&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;44&lt;/span&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;List&amp;lt;MethodBlock&amp;gt;&amp;nbsp;methodBlocks&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;MethodBlock&amp;gt;();&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;45&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(MethodItem&amp;nbsp;methodItem&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;classItem.Methods)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;46&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;47&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;paramsCount&amp;nbsp;=&amp;nbsp;methodItem.Parameters.Count;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;48&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(paramsCount&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;49&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;50&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lastParamY&amp;nbsp;+=&amp;nbsp;paramsCount&amp;nbsp;*&amp;nbsp;(BLOCK_HEIGHT&amp;nbsp;+&amp;nbsp;BLOCK_INNER_HEGIHT);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;51&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;52&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;53&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;54&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lastParamY&amp;nbsp;+=&amp;nbsp;(BLOCK_HEIGHT&amp;nbsp;+&amp;nbsp;BLOCK_INNER_HEGIHT);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;55&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;currentParamY&amp;nbsp;+=&amp;nbsp;(BLOCK_HEIGHT&amp;nbsp;+&amp;nbsp;BLOCK_INNER_HEGIHT);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;56&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;57&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;58&lt;/span&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;currentMethodY&amp;nbsp;=&amp;nbsp;((lastParamY&amp;nbsp;-&amp;nbsp;BLOCK_INNER_HEGIHT&amp;nbsp;-&amp;nbsp;originalParamY)&amp;nbsp;/&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;originalParamY&amp;nbsp;-&amp;nbsp;(BLOCK_HEIGHT&amp;nbsp;/&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;));&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;59&lt;/span&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;originalParamY&amp;nbsp;=&amp;nbsp;lastParamY;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;60&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;61&lt;/span&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;MethodBlock&amp;nbsp;methodBlock&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;MethodBlock(&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Point(startMethodX,&amp;nbsp;currentMethodY),&amp;nbsp;BLOCK_WIDTH,&amp;nbsp;BLOCK_HEIGHT);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;62&lt;/span&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;methodBlock.Content&amp;nbsp;=&amp;nbsp;methodItem.Name;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;63&lt;/span&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;methodBlocks.Add(methodBlock);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;64&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(ParameterItem&amp;nbsp;parameterItem&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;methodItem.Parameters)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;65&lt;/span&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;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;66&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ParameterBlock&amp;nbsp;parameterBlock&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;ParameterBlock(&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Point(startParamX,&amp;nbsp;currentParamY),&amp;nbsp;BLOCK_WIDTH,&amp;nbsp;BLOCK_HEIGHT);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;67&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterBlock.Content&amp;nbsp;=&amp;nbsp;parameterItem.DefaultName;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;68&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;methodBlock.ParameterBlocks.Add(parameterBlock);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;69&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;currentParamY&amp;nbsp;+=&amp;nbsp;(BLOCK_HEIGHT&amp;nbsp;+&amp;nbsp;BLOCK_INNER_HEGIHT);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;70&lt;/span&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;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;71&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;72&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;73&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(lastParamY&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;74&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;75&lt;/span&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;lastParamY&amp;nbsp;-=&amp;nbsp;BLOCK_INNER_HEGIHT;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;76&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;77&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;78&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;79&lt;/span&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;lastParamY&amp;nbsp;=&amp;nbsp;BLOCK_HEIGHT;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;80&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;81&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;82&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.Height&amp;nbsp;=&amp;nbsp;lastParamY;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;83&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;84&lt;/span&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;Point&amp;nbsp;classStartPoint&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Point(&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;85&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&amp;nbsp;(classItem.Methods.Count&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;1&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;86&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;87&lt;/span&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;&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt;&amp;nbsp;y&amp;nbsp;=&amp;nbsp;(methodBlocks.Last().LeftBottomPoint.Y&amp;nbsp;-&amp;nbsp;methodBlocks.First().LeftBottomPoint.Y)&amp;nbsp;/&amp;nbsp;&lt;span style="color: rgb(128, 0, 128);"&gt;2&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;88&lt;/span&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;classStartPoint&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;Point(&lt;span style="color: rgb(128, 0, 128);"&gt;0&lt;/span&gt;,&amp;nbsp;y);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;89&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;90&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;91&lt;/span&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;ClassBlock&amp;nbsp;classBlock&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;ClassBlock(classStartPoint,&amp;nbsp;BLOCK_WIDTH,&amp;nbsp;BLOCK_HEIGHT);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;92&lt;/span&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;classBlock.Content&amp;nbsp;=&amp;nbsp;classItem.Name;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;93&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;foreach&lt;/span&gt;&amp;nbsp;(MethodBlock&amp;nbsp;methodBlock&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&amp;nbsp;methodBlocks)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;94&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;95&lt;/span&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;classBlock.MethodBlocks.Add(methodBlock);&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;96&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;97&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;98&lt;/span&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 style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;classBlock;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;99&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; Bitmap CreateImage(ClassItem classItem, Font font)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 主要负责绘制Bitmap图片&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; ClassBlock CreateCurrentClassBlock(ClassItem classItem)&amp;nbsp;&amp;nbsp;&amp;nbsp; 主要负责将ClassItem（类信息形式）转换成ClassBlock（坐标形式），并负责计算相应的坐标&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;类的树结构显示效果如下：&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/jasenkin/IronRuby004.jpg" width="860" height="501" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;当然，还可以定义其他格式的类，显示的效果根据类的不同绘制相应的树结构。其中，TreeDrawer中比较简单的算法会自动设置合理的坐标，以生成相应的树结构坐标。本处一切以简单进行处理，不然的话，参数设置是比较多的。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 102, 0); font-size: 18pt;"&gt;四、总结&lt;/span&gt;&lt;/p&gt;&lt;p&gt;IronRuby是.NET下的一个Ruby实现，对于实现单个类的操作来说，用.NET 4.0中的Dynamic更加方便与美观，如调用PersonClass类的nonArgsMethod方法即可写成如下格式：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;dynamic&amp;nbsp;globals=&amp;nbsp;engine.Runtime.Globals;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;dynamic&amp;nbsp;apple&amp;nbsp;=&amp;nbsp;globals.PersonClass.@new();&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 128, 0);"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;构造实例&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br /&gt;&lt;/span&gt;apple.nonArgsMethod();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 128, 0);"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;调用方法&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;本文中采用如下代码进行调用，主要是为了通用性处理。通过类名称以及构造函数的参数来动态获取类的信息。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;RubyClass&amp;nbsp;rubyClass&amp;nbsp;=&amp;nbsp;engine.Runtime.Globals.GetVariable(className);&lt;br /&gt;dynamic&amp;nbsp;instance&amp;nbsp;=&amp;nbsp;engine.Operations.CreateInstance(rubyClass,&amp;nbsp;parameters);&lt;br /&gt;ClassItem&amp;nbsp;classItem&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;ClassItem(className);&lt;br /&gt;IList&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;gt;&amp;nbsp;memberNames&amp;nbsp;=&amp;nbsp;engine.Operations.GetMemberNames(instance);&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;源代码下载地址：&lt;a style="color: rgb(0, 0, 255);" title="IronRuby Ruby类树结构源码" href="http://files.cnblogs.com/jasenkin/IronRuby/Jasen.IronRubyApp.rar"&gt;IronRuby Ruby类树结构源码&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;img src="http://www.cnblogs.com/jasenkin/aggbug/2223202.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jasenkin/archive/2011/10/24/ironruby_ruby_class_tree.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jasenkin/archive/2011/08/22/listview_virtual_model.html</id><title type="text">Winform ListView虚拟模式</title><summary type="text">一、前言虚拟模式在许多情况下都很有用。 如果必须从已存在于内存中的非常大的集合填充一个 ListView 对象，则为每项创建一个 ListViewItem 对象会很浪费。 在虚拟模式下，从缓冲之中获取所需的数据进行加载，性能会有很大提高。 在其他情况下，可能需要经常重新计算 ListViewItem 对象的值，对整个集合进行此操作将产生不可接受的性能。如下为虚拟模式的一个应用示例（仿VS2010错误列表），截图如下:二、虚拟模式相关注意点1、设置一个缓存属性，来保存需要加载的数据: protected List&lt;ListViewItem&gt; CurrentCacheItemsSour</summary><published>2011-08-21T16:00:00Z</published><updated>2011-08-21T16:00:00Z</updated><author><name>JasenKin</name><uri>http://www.cnblogs.com/jasenkin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jasenkin/archive/2011/08/22/listview_virtual_model.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jasenkin/archive/2011/08/22/listview_virtual_model.html"/><content type="html">&lt;p&gt;&lt;span style="background-color: #ffffff; color: #ff6600; font-size: 14pt"&gt;一、&lt;/span&gt;&lt;span style="background-color: #ffffff; color: #ff6600; font-size: 14pt"&gt;前言&lt;/span&gt;&lt;/p&gt;&lt;p&gt;虚拟模式在许多情况下都很有用。 如果必须从已存在于内存中的非常大的集合填充一个 ListView 对象，则为每项创建一个 ListViewItem 对象会很浪费。 在虚拟模式下，从缓冲之中获取所需的数据进行加载，性能会有很大提高。 在其他情况下，可能需要经常重新计算 ListViewItem 对象的值，对整个集合进行此操作将产生不可接受的性能。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;如下为虚拟模式的一个应用示例（仿VS2010错误列表），截图如下:&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/jasenkin/listviewvirtual.jpg" width="581" longdesc="" height="367" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff6600; font-size: 14pt"&gt;二、&lt;/span&gt;&lt;span style="color: #ff6600; font-size: 14pt"&gt;虚拟模式相关注意点&lt;/span&gt;&lt;/p&gt;&lt;p&gt;1、设置一个缓存属性，来保存需要加载的数据:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected List&amp;lt;ListViewItem&amp;gt; CurrentCacheItemsSource&amp;nbsp; &lt;br /&gt;&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; get;&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; private set;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2、通过虚拟模式来加载数据，如下:&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;LoadListViewItems(List&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;ListViewItem&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;items)&lt;br /&gt;&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;&amp;nbsp;listView.Items.Clear();&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;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(items&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;==&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&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;stripStatusInfo.Text&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;当前总共记录数为：0&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;;&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;}&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;&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;listView.GridLines&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&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;listView.FullRowSelect&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&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;listView.View&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;View.Details;&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;listView.Scrollable&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&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;listView.MultiSelect&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&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;listView.HeaderStyle&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ColumnHeaderStyle.Clickable;&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;listView.Visible&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&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;listView.VirtualListSize&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;items.Count;&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;listView.VirtualMode&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&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;listView.RetrieveVirtualItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;RetrieveVirtualItemEventHandler(listView_RetrieveVirtualItem);&lt;br /&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;stripStatusInfo.Text&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;当前总共记录数为：&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;items.Count;&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;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;listView.VirtualMode&amp;nbsp;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;;//设置虚拟模式&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000"&gt;listView.VirtualListSize&amp;nbsp;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;items.Count;//设置虚拟列表容量大小&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;listView.RetrieveVirtualItem&amp;nbsp;&lt;span style="color: #000000"&gt;+=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;RetrieveVirtualItemEventHandler(listView_RetrieveVirtualItem);//绑定虚拟操作&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/p&gt;&lt;/span&gt;&lt;p&gt;3、在RetrieveVirtualItem方法中加载相关的数据：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;listView_RetrieveVirtualItem(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;sender,&amp;nbsp;RetrieveVirtualItemEventArgs&amp;nbsp;e)&lt;br /&gt;&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;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.CurrentCacheItemsSource&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;==&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;||&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.CurrentCacheItemsSource.Count&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;==&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&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;{&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&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;}&lt;br /&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;e.Item&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.CurrentCacheItemsSource[e.ItemIndex];&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(e.ItemIndex&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;==&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.CurrentCacheItemsSource.Count)&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;{&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.CurrentCacheItemsSource&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;;&lt;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;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;需要注意及时释放掉所需要的缓存数据，如下：&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(e.ItemIndex&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;==&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.CurrentCacheItemsSource.Count)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.CurrentCacheItemsSource&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;;&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000"&gt;当e.ItemIndex&amp;nbsp;的值与缓存中的集合大小相等时，设置缓存为NULL（对象根引用设置为NULL，内存中的对象不再有根引用，所需的内存将由GC第二次回收时释放，相关内容请查看CLR GC）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff6600; font-size: 14pt"&gt;三、总结&lt;/span&gt;&lt;/p&gt;&lt;p&gt;当数据为几万条记录时，加载ListView速度非常快，不会造成任何影响，页面显示正常。目前，测试30W条简单的记录，性能还是可以接受的。当然，对于大数据量而言（50W条记录以上），分页才是最佳方式。其次，需要注意的是，对缓存数据需要及时清空，避免不必要的性能损失。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000"&gt;源代码下载：&lt;a title="ListView虚拟模式源码" href="http://files.cnblogs.com/jasenkin/Jasen.Framework.WinApp.rar"&gt;ListView虚拟模式源码&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/p&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/jasenkin/aggbug/2148772.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jasenkin/archive/2011/08/22/listview_virtual_model.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jasenkin/archive/2011/07/15/component_development.html</id><title type="text">C#插件开发简单模型</title><summary type="text">一、前言 插件模型指应用程序由一些动态的独立模块构成，每个模块均具有一个或多个服务，并满足一定的插件协议，能够借助主程序实现主程序－插件，插件－插件之间的通讯。它定义了一套公共的接口，通过接口与插件进行通信，主要是通过反射来获取相关的属性和方法，然后再执行指定的操作。其实，它也可以理解为定义一套通用的解决方案，通过反射来获取相应的程序集的相关类型，然后执行这些指定类型的相关操作。它是一种即插即用的方案，更新及维护简便。本文仅仅是描述插件开发的大体模型，设计比较简单，主要的步骤如下：（1）、定义公共的接口以及抽象类。（2）、定义和实现相关组件。（3）、实现通用程序集反射操作类。其中，公共的接口和</summary><published>2011-07-15T05:29:00Z</published><updated>2011-07-15T05:29:00Z</updated><author><name>JasenKin</name><uri>http://www.cnblogs.com/jasenkin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jasenkin/archive/2011/07/15/component_development.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jasenkin/archive/2011/07/15/component_development.html"/><content type="html">&lt;font color="#ff6600" size="5"&gt;&lt;span style="font-size: 14pt"&gt;一、前言&lt;/span&gt;&lt;/font&gt;&amp;nbsp; &lt;p&gt;插件模型指应用程序由一些动态的独立模块构成，每个模块均具有一个或多个服务，并满足一定的插件协议，能够借助主程序实现主程序－插件，插件－插件之间的通讯。它定义了一套公共的接口，通过接口与插件进行通信，主要是通过反射来获取相关的属性和方法，然后再执行指定的操作。其实，它也可以理解为定义一套通用的解决方案，通过反射来获取相应的程序集的相关类型，然后执行这些指定类型的相关操作。它是一种即插即用的方案，更新及维护简便。&lt;/p&gt;&lt;p&gt;本文仅仅是描述插件开发的大体模型，设计比较简单，主要的步骤如下：&lt;/p&gt;&lt;p&gt;（1）、定义公共的接口以及抽象类。&lt;/p&gt;&lt;p&gt;（2）、定义和实现相关组件。&lt;/p&gt;&lt;p&gt;（3）、实现通用程序集反射操作类。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;其中，公共的接口和抽象类定义在组件Jasen.Framework.Core中，该组件中提供通用程序集反射操作类AssemblyUtility；具体实现的相关组件为Jasen.Framework.Oracle、Jasen.Framework.Access和Jasen.Framework.SqlServer，它们都实现了Jasen.Framework.Core中的公共接口。客户端可以根据实际情况来进行相应的操作。相关组件图如下：&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/jasenkin/component.jpg" width="760" longdesc="" height="276" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff6600; font-size: 14pt"&gt;二、公共接口和抽象类的定义以及&lt;font color="#ff6600"&gt;&lt;font size="5"&gt;&lt;span style="font-size: 14pt"&gt;相关组件的&lt;/span&gt;&lt;/font&gt;&lt;font size="5"&gt;&lt;span style="font-size: 14pt"&gt;定义和实现&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;首先，定义公共的接口以及抽象类，如下类图所示，定义一个公共的接口IDataTable，定义一个抽象类DataTable，这些公共的类型放置在最顶端的程序集中。而其他组件将分别重新创建，实现相对应的功能，如SqlServerDataTable、OracleDataTable和AccessDataTable实现各自的功能。注意：Assembly.LoadFile(file)动态加载程序集时，该程序集在当前的运行环境中必须不存在的，否则可能会出现意想不到的数据异常，因此相关组件的实现必须是独立的（仅仅是实现公共的接口）。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/jasenkin/class.jpg" width="478" longdesc="" height="267" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff6600; font-size: 14pt"&gt;三、通用程序集反射操作类的&lt;font color="#ff6600" size="5"&gt;&lt;span style="font-size: 14pt"&gt;实现&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;下面的AssemblyUtility主要是对程序集操作的通用类，可以根据指定目录以及文件列表动态获取相应的程序集。同时，也可以通过目录，文件以及程序集获取相关的类型集合和对象集合。其中需要注意的是，实现的子类必须提供默认构造函数。客户端可以通过该类获取相应的类型和对象集合，然后再执行相应的操作。这些操作都是通过动态加载程序集来实现的，代码如下所示：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AssemblyUtility&lt;br /&gt;&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IEnumerable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Type&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementdTypesByDirectory&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;baseDirectory)&lt;br /&gt;&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;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Assembly&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblies&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetAssemblies(baseDirectory);&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;List&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Type&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;types&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Type&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(Assembly&amp;nbsp;assembly&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblies)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;types.AddRange(GetImplementdTypes&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(assembly));&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;&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;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;types;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IEnumerable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Type&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementdTypes&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblyFile)&lt;br /&gt;&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;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;File.Exists(assemblyFile))&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;{&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&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;{&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementdTypes&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(Assembly.LoadFile(assemblyFile));&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;}&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(Exception&amp;nbsp;ex)&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;{&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IEnumerable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Type&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementdTypes&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(Assembly&amp;nbsp;assembly)&lt;br /&gt;&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;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(assembly&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;==&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assembly.GetExportedTypes().Where(p&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&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;p.IsSubclassOf(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000"&gt;(T))&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;p.IsAbstract)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;p.IsInterface));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementedObjectsByDirectory&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;baseDirectory)&lt;br /&gt;&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;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Assembly&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblies&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetAssemblies(baseDirectory);&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;List&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;entities&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(Assembly&amp;nbsp;assembly&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblies)&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;{&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;entities.AddRange(GetImplementedObjects&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(assembly));&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;}&lt;br /&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;entities;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementedObjects&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblyFile)&lt;br /&gt;&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;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;File.Exists(assemblyFile))&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;{&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&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;{&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementedObjects&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(Assembly.LoadFile(assemblyFile));&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;}&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(Exception&amp;nbsp;ex)&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;{&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementedObjects&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(Assembly&amp;nbsp;assembly)&lt;br /&gt;&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;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(assembly&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;==&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&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;IEnumerable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Type&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;types&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementdTypes&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(assembly);&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;var&amp;nbsp;result&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;();&lt;br /&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(Type&amp;nbsp;type&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;types)&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;{&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;ConstructorInfo&amp;nbsp;constructor&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;type.GetConstructor(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Type[&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(constructor&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;==&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;continue&lt;/span&gt;&lt;span style="color: #000000"&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;}&lt;br /&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;instance&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Activator.CreateInstance(type);&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(instance&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;is&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;T)&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;{&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;nbsp;result.Add((T)instance);&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;}&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;}&lt;br /&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;result;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Assembly&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetAssemblies(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;baseDirectory)&lt;br /&gt;&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;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;Directory.Exists(baseDirectory))&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;{&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Assembly&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&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;}&lt;br /&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;[]&amp;nbsp;files&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Directory.GetFiles(baseDirectory,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;*.dll&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetAssemblies(files);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Assembly&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetAssemblies(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;[]&amp;nbsp;assemblyFiles)&lt;br /&gt;&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;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Assembly&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblies&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Assembly&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&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;{&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblyFiles)&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;{&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;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;File.Exists(file)&lt;/span&gt;&lt;span style="color: #000000"&gt;||&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;!&lt;/span&gt;&lt;span style="color: #000000"&gt;file.EndsWith(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;.dll&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,StringComparison.InvariantCultureIgnoreCase)))&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;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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;continue&lt;/span&gt;&lt;span style="color: #000000"&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;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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;assemblies.Add(Assembly.LoadFile(file));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(Exception&amp;nbsp;ex)&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;{&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Assembly&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&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;}&lt;br /&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblies;&lt;br /&gt;&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;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IEnumerable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Type&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementdTypesByDirectory&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;baseDirectory)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IEnumerable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Type&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementdTypes&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblyFile)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementedObjects&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(Assembly&amp;nbsp;assembly)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;以上3个方法根据不同的参数（目录、地址、程序集）来动态获取程序集中的特定类型集合，这些类型为类型T的类或者子类（非抽象类和接口）。&lt;/p&gt;&lt;p&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementedObjectsByDirectory&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;baseDirectory)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementedObjects&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblyFile)&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementedObjects&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;T&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(Assembly&amp;nbsp;assembly)&lt;br /&gt;而以上3个方法根据不同的参数（目录、地址、程序集）来动态获取程序集中的特定对象集合，这些对象为类型T的类或者子类（非抽象类和接口）的实例。当组件中子类存在有参构造函数时，必须实现默认构造函数。从如下代码可以看出：如果默认构造函数不存在，将不会添加该对象实例。&lt;/p&gt;&lt;p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConstructorInfo&amp;nbsp;constructor&amp;nbsp;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;type.GetConstructor(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Type[&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(constructor&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;==&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;continue&lt;/span&gt;&lt;span style="color: #000000"&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;}&lt;br /&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;instance&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Activator.CreateInstance(type);&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(instance&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;is&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;T)&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;{&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;nbsp;result.Add((T)instance);&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;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff6600; font-size: 14pt"&gt;四、通用程序集反射操作类的&lt;font color="#ff6600" size="5"&gt;&lt;span style="font-size: 14pt"&gt;单元测试&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;AssemblyUtility类主要的单元测试如下，仅验证了正确的情况，代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AssemblyUtilityTest&lt;br /&gt;&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;[TestMethod()]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetAssembliesTest()&lt;br /&gt;&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;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblyPath&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AppDomain.CurrentDomain.BaseDirectory&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;\\Files\\&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&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;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Assembly&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;result&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AssemblyUtility.GetAssemblies(assemblyPath);&lt;br /&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;Assert.IsNotNull(result);&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;Assert.AreEqual(&lt;/span&gt;&lt;span style="color: #800080"&gt;3&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;result.Count);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetAssembliesByFilesTest()&lt;br /&gt;&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;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;[]&amp;nbsp;assemblyFiles&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;[]&amp;nbsp;{&amp;nbsp;AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;\\Jasen.Framework.Core.dll&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&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;nbsp;&amp;nbsp;&amp;nbsp;AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;\\Jasen.Framework.Core.Test.dll&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;www&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ww.dll&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&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;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Assembly&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;result&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AssemblyUtility.GetAssemblies(assemblyFiles);&lt;br /&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;Assert.IsNotNull(result);&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;Assert.AreEqual(&lt;/span&gt;&lt;span style="color: #800080"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;result.Count);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementedObjectsByDirectoryTest()&lt;br /&gt;&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;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblyDir&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;\\Files\\&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&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;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;DataTable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;result&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AssemblyUtility.GetImplementedObjectsByDirectory&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;DataTable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(assemblyDir);&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;Assert.IsNotNull(result);&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;Assert.AreEqual(&lt;/span&gt;&lt;span style="color: #800080"&gt;3&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;result.Count);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementedObjectsTest()&lt;br /&gt;&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;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblyFile&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;\\Files\\Jasen.Framework.Oracle.dll&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;;&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;&amp;nbsp;IList&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;DataTable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;result&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AssemblyUtility.GetImplementedObjects&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;DataTable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(assemblyFile);&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;Assert.IsNotNull(result);&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;Assert.AreEqual(&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;result.Count);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementedTypesTest()&lt;br /&gt;&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;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblyFile&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;\\Files\\Jasen.Framework.Oracle.dll&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&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;IEnumerable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Type&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;types&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AssemblyUtility.GetImplementdTypes&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;DataTable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(assemblyFile);&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;Assert.IsNotNull(types);&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;count&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(var&amp;nbsp;type&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;types)&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;{&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;Assert.IsTrue(type.IsSubclassOf(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000"&gt;(DataTable)));&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;Assert.IsFalse(type.IsAbstract);&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;Assert.IsFalse(type.IsInterface);&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;count&lt;/span&gt;&lt;span style="color: #000000"&gt;++&lt;/span&gt;&lt;span style="color: #000000"&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;}&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;Assert.AreEqual(&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;count);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod()]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetImplementdTypesByDirectoryTest()&amp;nbsp;&lt;br /&gt;&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;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;assemblyDir&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AppDomain.CurrentDomain.BaseDirectory&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;\\Files\\&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&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;IEnumerable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Type&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;types&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AssemblyUtility.GetImplementdTypesByDirectory&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;DataTable&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(assemblyDir);&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;Assert.IsNotNull(types);&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;count&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&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;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(var&amp;nbsp;type&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;types)&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;{&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;Assert.IsTrue(type.IsSubclassOf(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000"&gt;(DataTable)));&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;Assert.IsFalse(type.IsAbstract);&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;Assert.IsFalse(type.IsInterface);&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;count&lt;/span&gt;&lt;span style="color: #000000"&gt;++&lt;/span&gt;&lt;span style="color: #000000"&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;}&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;Assert.AreEqual(&lt;/span&gt;&lt;span style="color: #800080"&gt;3&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;count);&lt;br /&gt;&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;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff6600; font-size: 14pt"&gt;五、总结&lt;/span&gt;&lt;/p&gt;&lt;p&gt;全文中主要围绕AssemblyUtility通用类来进行讲解的，仅仅是插件开发的一个思路。具体应用的话，应该相对来说比较直接，在客户端获取相应的类型集合以及对象集合，然后再执行这些集合的具体操作即可。其中，实现的组件（插件）放置在指定的目录下，通过AssemblyUtility类即可动态加载目录下的程序集，从而获取到指定类型的数据。具体执行什么操作，实现什么功能，这些都是在组件（插件）中实现即可。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;源代码下载：&lt;a title="C#插件开发模型源代码" href="http://files.cnblogs.com/jasenkin/Jasen.Framework.AssemblySample.rar"&gt;C#插件开发模型源代码&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jasenkin/aggbug/2106977.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jasenkin/archive/2011/07/15/component_development.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
