<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<channel>
	<title>flyinweb's blog - DotNet专栏</title>
	<link>http://www.517sou.net/Folder/dotnet/Index.aspx</link>
	<language>zh-CN</language>
	<webMaster>shanyiwan@msn.com(flyinweb)</webMaster>
	<pubDate>Mon, 15 Jun 2009 19:31:16 GMT</pubDate>
	<copyright>Copyright 2007-2009. All rights reserved.</copyright>
	<generator>Bitrac Free Version</generator>
	<description>桃李无言，下自成蹊</description>
	<image>
		<title>flyinweb&apos;s blog</title>
		<url>http://www.517sou.net/Client/Banner.gif</url>
		<link>http://www.517sou.net/</link>
		<description>桃李无言，下自成蹊</description>
	</image>
	<item>
		<link>http://www.517sou.net/Article/creating-your-sql-server-compact-edition-database-and-schema-in-code.aspx</link>
		<title>Creating your SQL Server Compact Edition database and schema in code</title>
		<author>shanyiwan@live.com()</author>
		<category>DotNet专栏</category>
		<pubDate>Wed, 04 Jan 2012 03:01:27 GMT</pubDate>
		<description>&lt;p&gt;In most cases you&apos;ll want to create your database and it&apos;s schema as part of your applications first deployment. Depending on the scenario, you may create it on the client, or create it on the server, do the initial sync, then stream the file down to the client pre-populated.&lt;/p&gt;&lt;p&gt;Why would you create the database on the fly, rather than ship the initial database with your app?&lt;/p&gt;&lt;p&gt;While you could create the empty shell, and deploy it, you&apos;ll almost never want to start with a database that has data? Why? While in development, you&apos;ll have some set of data. Months later, when another user first installs your app that data may no longer be valid. Since most sync systems don&apos;t track deletes forever, you could wind up with data that is very stale, and now way to effectively update it. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Data Files and Click Once&lt;/b&gt;&lt;/p&gt;&lt;p&gt;If you&apos;re using ClickOnce, the other problem is how ClickOnce manages data files. If you initially ship your app with a datafile that your customers edit you could loose those changes. If the file timestamp on your data file changes, ClickOnce will try to &amp;quot;update it&amp;quot; and replace the data file in your ClickOnce data directory. It does move the previous version to a .pre folder, but only once. If you realized you made this mistake, and send another update to ‘fix it&amp;quot;, you could again move the data file to the .pre folder, and the original one that had the data you were trying to save will be permanently lost.&lt;/p&gt;&lt;p&gt;For this post, I&apos;m going to focus on how to create the database and schema. You&apos;ll see that with a combination of some SQLServerCe APIs, and the use of Resources, it&apos;s not very difficult to create, test within SQL Server Management Studio and deploy these updates to your client. This same procedure could be used for the initial deployment, as well as app updates where you may need to add new tables/columns, or add new relationships, constraints or indexes.&lt;/p&gt;&lt;p&gt;When an app starts up, I like to validate a few things like whether this is the first time the app was installed, if it&apos;s the appropriate version, if all the necessary files still exist, as well as online/offline status.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Does the database exist?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;I&apos;ll first create a class called DatabaseHealthCheck() I&apos;ll first check if the database even exists. Since with SQL Server Compact a database is a file, and a file is a database, it&apos;s pretty straight forward. The file either exists, or it doesn&apos;t. The connection string for a SQLce database contains a few name/value pairs depending on the options.&lt;/p&gt;&lt;p&gt;Data Source =&amp;quot;|DataDirectory|\Another.sdf&amp;quot;; Password =&amp;quot;SomePassword&amp;quot;;&lt;/p&gt;&lt;p&gt;Rather than parse the string, or build it up manually, the SqlCeConnection object there&apos;s a Database property that many don&apos;t even think to look for. Since the database is a file..., all you need to do is create a connection object, and ask for the Database property. No need to open the connection, which wouldn&apos;t work if the database/file didn&apos;t exist.&lt;/p&gt;&lt;p style=&quot;margin: 0in 0in 10pt; mso-pagination: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;Dim &lt;/span&gt;localConnection &lt;span style=&quot;color: blue&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;New&lt;/span&gt; SqlCeConnection(&lt;span style=&quot;color: blue&quot;&gt;My&lt;/span&gt;.Settings.LocalConnectionString)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;3&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;If&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;Not&lt;/span&gt; System.IO.File.Exists(localConnection.&lt;b style=&quot;mso-bidi-font-weight: normal&quot;&gt;Database&lt;/b&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Nope, doesn&apos;t exist, let&apos;s create it&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Next, if the database didn&apos;t exist, we&apos;ll need to create it. This is where it gets interesting. Since SQLce doesn&apos;t run as a service, you can&apos;t open a connection to the Master database and issue a Create Database command. No problem, SQLce has just the API for you. How about these two lines of code:&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes&quot;&gt;Dim&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt; sqlCeEngine &lt;span style=&quot;color: blue&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;New&lt;/span&gt; SqlCeEngine(&lt;/span&gt;&lt;font face=&quot;Calibri&quot;&gt;&lt;span style=&quot;color: blue; font-size: 10pt; mso-bidi-font-size: 11.0pt&quot;&gt;My&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; mso-bidi-font-size: 11.0pt&quot;&gt;.Settings.LocalConnectionString&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;sqlCeEngine.CreateDatabase()&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Pretty simple, huh. For those of you that were wondering why you would use SQL Server Compact Edition as your local database, now you&apos;re probably starting to see how SQLce can be used to reduce the complexity really needed in a local/embedded database.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Creating the initial schema&lt;/b&gt;&lt;/p&gt;&lt;p&gt;It would be nice if we had a simple CreateTable API on the SqlCeEngine object, but we&apos;re not there yet. But we can leverage T-SQL that we&apos;d write in SQL Server Management Studio, at least the appropriate subset. We&apos;re all familiar, although it&apos;s likely not our favorite, with the ability to create scripts, separated by the GO command. Using this model we can test scripts, save them and re-execute them.&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes&quot;&gt;CREATE TABLE &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;Suppliers(&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;SupplierID nVarChar(10) &lt;span style=&quot;color: blue&quot;&gt;NOT NULL CONSTRAINT &lt;/span&gt;Suppliers_PK &lt;span style=&quot;color: blue&quot;&gt;PRIMARY KEY&lt;/span&gt;,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;CompanyName nvarchar(40) &lt;span style=&quot;color: blue&quot;&gt;NOT NULL&lt;/span&gt;,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;Description nvarchar(100) &lt;span style=&quot;color: blue&quot;&gt;NULL&lt;/span&gt;,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;SortOrder &lt;span style=&quot;color: blue&quot;&gt;int NOT NULL DEFAULT&lt;/span&gt;(50),&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;Active &lt;span style=&quot;color: blue&quot;&gt;bit NOT NULL DEFAULT &lt;/span&gt;(1) &lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;GO&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes&quot;&gt;CREATE TABLE &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;OrderStatus(&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;OrderStatus &lt;span style=&quot;color: blue&quot;&gt;nChar&lt;/span&gt;(10) &lt;span style=&quot;color: blue&quot;&gt;NOT NULL CONSTRAINT &lt;/span&gt;OrderStatus_PK &lt;span style=&quot;color: blue&quot;&gt;PRIMARY KEY&lt;/span&gt;,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;Status nvarchar(40) &lt;span style=&quot;color: blue&quot;&gt;NOT NULL&lt;/span&gt;,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;Description nvarchar(100) &lt;span style=&quot;color: blue&quot;&gt;NULL&lt;/span&gt;,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;SortOrder &lt;span style=&quot;color: blue&quot;&gt;int NOT NULL DEFAULT&lt;/span&gt;(50),&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;Active &lt;span style=&quot;color: blue&quot;&gt;bit NOT NULL DEFAULT &lt;/span&gt;(1) &lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;GO&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The problem is how do we get this in our code? We could embed the whole thing in quotes in our code:&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes&quot;&gt;Dim&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt; commandTest &lt;span style=&quot;color: blue&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;String&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;commandTest = &lt;span style=&quot;color: rgb(163,21,21)&quot;&gt;&amp;quot;CREATE TABLE OrderStatus(&amp;quot;&lt;/span&gt; + _&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: rgb(163,21,21)&quot;&gt;&amp;quot; OrderStatus nChar(10) NOT NULL CONSTRAINT OrderStatus_PK PRIMARY KEY,&amp;quot;&lt;/span&gt; + _&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: rgb(163,21,21)&quot;&gt;&amp;quot;&lt;span style=&quot;mso-tab-count: 1&quot;&gt;&lt;/span&gt;Status nvarchar(40) NOT NULL,&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;But we don&apos;t have to get past line 2 before you realize, that sucks. And, if you ever want to make a change, you&apos;ll have to decrypt this to put it back inside a query window. No problem, this is where we can leverage the handy dandy resource features.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Adding a SQL Script Resource&lt;/b&gt;&lt;/p&gt;&lt;p&gt;We&apos;ll start by creating a script in SQL Server Management Studio. You can use the above CREATE TABLE scripts above to get things started. Within Management Studio, choose to save the script. It doesn&apos;t really matter where, because VS will pull a copy into your project in the next step.&lt;/p&gt;&lt;p&gt;Name the script something with a .sql extension. If you do this, when you open the file within Visual Studio, you&apos;ll get T-SQL syntax coloring.&lt;/p&gt;&lt;p&gt;Within Visual Studio, open the Resource designer. For VB, double click My Project from within your Solution Explorer. For C#, double click Properties. Click on the Resources tab on the left. From the toolbar select Add Resource à Add Existing Resource. Select the file you just created, and voila.&lt;/p&gt;&lt;p&gt;Now you might ask why I didn&apos;t just create the file here using the Add Resource à Add New Text File. If I went that path, and I named the file Script.sql, Visual Studio would have added .txt to it so it would wind up as Script.sql.txt. If I then renamed the file in Solution Explorer, the link in the resources would be broken, and I would have to delete the resource reference, and then drag the renamed file back to the resource designer. Either works, this second way just highlights a less optimized scenarios. But, I guess I just did that. ...either way...&lt;/p&gt;&lt;p&gt;Double click the script file you added, and voila, T-SQL syntax coloring. You may get a warning dialog, but just ignore it. The project template doesn&apos;t understand this extension, yet Visual Studio does. You could just uncheck the checkbox so you won&apos;t get nagged anymore.&lt;/p&gt;&lt;p&gt;Now, it would be nice if you could just execute the script, but no, this isn&apos;t enabled in non-database projects.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Executing the script&lt;/b&gt;&lt;/p&gt;&lt;p&gt;We now have a script that we can copy/paste back and forth between Visual Studio and SQL Server Management Studio. But how do I execute this with my app? This is where we start to see the sum of the parts come together. We can use the &lt;strong&gt;My.Resources &lt;/strong&gt;api, or in C#, the &lt;strong&gt;Resources.Default &lt;/strong&gt;api to get a strongly typed experience to the resources in your project. We&apos;ll then simply use the String.Split api to parse the commands on the word GO.&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes&quot;&gt;Dim&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt; commands() &lt;span style=&quot;color: blue&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;String&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;commands = &lt;span style=&quot;color: blue&quot;&gt;My&lt;/span&gt;.Resources.DatabaseCreation.Split( _&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;New&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;String&lt;/span&gt;() {&lt;span style=&quot;color: rgb(163,21,21)&quot;&gt;&amp;quot;GO&amp;quot;&lt;/span&gt;}, _&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;StringSplitOptions.RemoveEmptyEntries)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Putting it all together&lt;/b&gt;&lt;/p&gt;&lt;p&gt;That&apos;s about it, we just need to put this all together now.&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes&quot;&gt;Public&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;Class&lt;/span&gt; DatabasHealthCheck&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;Public&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;Sub&lt;/span&gt; VerifyDatabaseExists(&lt;span style=&quot;color: blue&quot;&gt;ByVal&lt;/span&gt; connectionString &lt;span style=&quot;color: blue&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;String&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;&apos; we&apos;ll use the SqlServerCe connection object to get the database file path&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;Using&lt;/span&gt; localConnection &lt;span style=&quot;color: blue&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;New&lt;/span&gt; SqlCeConnection(&lt;span style=&quot;color: blue&quot;&gt;My&lt;/span&gt;.Settings.LocalConnectionString)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;&apos; The SqlCeConnection.Database contains the file parth portion &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;&apos; of the database from the full connectionstring&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;If&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;Not&lt;/span&gt; System.IO.File.Exists(localConnection.Database) &lt;span style=&quot;color: blue&quot;&gt;Then&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;&apos; No file, no database&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;Using&lt;/span&gt; sqlCeEngine &lt;span style=&quot;color: blue&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;New&lt;/span&gt; SqlCeEngine(connectionString)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;sqlCeEngine.CreateDatabase()&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;CreateInitialDatabaseObjects(connectionString)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;End&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;Using&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;End&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;If&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;End&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;Using&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;End&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;&apos;&apos;&apos; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;&apos;&apos;&apos; When the database is created, we need to initialize it with new tables, relations and possibly data &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;&apos;&apos;&apos; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;Public&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;Sub&lt;/span&gt; CreateInitialDatabaseObjects(&lt;span style=&quot;color: blue&quot;&gt;ByVal&lt;/span&gt; connectionString &lt;span style=&quot;color: blue&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;String&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;&apos; Grab a reference to the connection on the client provider&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;Using&lt;/span&gt; connection &lt;span style=&quot;color: blue&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;New&lt;/span&gt; SqlCeConnection(connectionString)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;&apos; Using the SQL Management Studio convention of using GO to identify individual commands&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;&apos; Create a list of commands to execute &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;Dim&lt;/span&gt; commands() &lt;span style=&quot;color: blue&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;String&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;&apos; To simplify editing and testing TSQL statements, &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;&apos; the commands are placed in a managed resource of the dll.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;commands = &lt;span style=&quot;color: blue&quot;&gt;My&lt;/span&gt;.Resources.DatabaseCreation.Split( _&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;New&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;String&lt;/span&gt;() {&lt;span style=&quot;color: rgb(163,21,21)&quot;&gt;&amp;quot;GO&amp;quot;&lt;/span&gt;}, _&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;StringSplitOptions.RemoveEmptyEntries)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;Dim&lt;/span&gt; cmd &lt;span style=&quot;color: blue&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;New&lt;/span&gt; SqlCeCommand()&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;&apos; make sure we put the connection back to its previous state&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;cmd.Connection = connection&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;connection.Open()&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;For&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;Each&lt;/span&gt; command &lt;span style=&quot;color: blue&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;In&lt;/span&gt; commands&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;cmd.CommandText = command&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;cmd.ExecuteNonQuery()&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;Next&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;End&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;Using&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;End&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes&quot;&gt;End&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;Class&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;In your application startup, simply execute the following code:&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes&quot;&gt;Dim&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt; databaseHealthCheck &lt;span style=&quot;color: blue&quot;&gt;As&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;New&lt;/span&gt; DatabasHealthCheck()&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;databaseHealthCheck.VerifyDatabaseExists(&lt;span style=&quot;color: blue&quot;&gt;My&lt;/span&gt;.Settings.LocalConnectionString)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;So, now you&apos;ve got an easy way to create your initial database, or alter an existing database as part of your app. As always, I love to get your feedback and thoughts,&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/creating-your-sql-server-compact-edition-database-and-schema-in-code.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/746/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/creating-your-sql-server-compact-edition-database-and-schema-in-code.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/746/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/ASPNET_Membership_and_RoleManager.aspx</link>
		<title>Membership&amp;RoleManager(成员资格和角色管理)</title>
		<author>shanyiwan@live.com()</author>
		<category>DotNet专栏</category>
		<pubDate>Sun, 17 Jul 2011 03:40:48 GMT</pubDate>
		<description>&lt;p&gt;介绍&lt;br /&gt;现在 ASP.NET 2.0 提供了对成员资格（用户名/密码凭据存储）和角色管理服务的内置支持。由于所有这些服务都是提供程序驱动的（Provider），因此可以方便地用您自己的自定义实现替换。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;关键&lt;br /&gt;1、基于Windows的身份验证将&amp;lt;system.web&amp;gt;元素下的&amp;lt;authentication&amp;gt; 设置为 Windows；基于Forms的身份验证将&amp;lt;system.web&amp;gt;元素下的&amp;lt;authentication&amp;gt; 设置为 Forms。&lt;br /&gt;&lt;br /&gt;2、基于Forms的身份验证时，设置&amp;lt;system.web&amp;gt;元素下的&amp;lt;authentication&amp;gt; 元素的 &amp;lt;forms&amp;gt; 子元素，示例如下，仅为说明&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;authentication &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;mode&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Forms&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;forms &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;.VS2005_Form&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; loginUrl&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;~/Security/Login.aspx&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; defaultUrl&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;~/Default.aspx&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; protection&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;All&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; timeout&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;30&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; path&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; requireSSL&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; slidingExpiration&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; enableCrossAppRedirects&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; cookieless&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;UseDeviceProfile&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;forms&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;authentication&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&amp;lt;forms&amp;gt;元素的属性说明如下&lt;br /&gt;1) cookieless - 身份验证可以将 Forms 身份验证票存储在 Cookie 中也可以以无 Cookie 的表示形式存储在 URL 上。有效值如下：&lt;br /&gt;·UseDeviceProfile - 默认值表示 ASP.NET 根据预先计算得到的浏览器配置文件来确定存储票证的位置。&lt;br /&gt;·AutoDetect - 选项使 ASP.NET 动态确定浏览器是否支持 Cookie。&lt;br /&gt;·UseUri - 强制实施无 Cookie 票证 &lt;br /&gt;·UseCookies - 强制实施有 Cookie 票证。&lt;br /&gt;2) defaultUrl - 指定在成功登录后，请求将重定向到的默认 URL。&lt;br /&gt;3) domain - 指定包含 Forms 身份验证票的 HttpCookie 的 Domain 属性的值。显式设置此属性可使应用程序共享同一个 Cookie，前提是这些应用程序共享某个 DNS 命名空间的一个公共部分（例如，如果 domain 属性设置为“cnblogs.com”，则 webabcd.cnblogs.com 和 dudu.cnblogs.com可以共享一个 Cookie）。&lt;br /&gt;4) enableCrossAppRedirects - Forms 身份验证允许以查询字符串变量或窗体 POST 变量的形式在应用程序之间传递 Forms身份验证票。将此属性设置为 true 可使 FormsAuthenticationModule 能够从查询字符串或窗体 POST 变量提取票证。&lt;br /&gt;5) loginUrl - 指定未经身份验证的用户的请求将被重定向到的 URL。该 URL 可以在同一台计算机上或在远程计算机上。如果是在远程计算机上，则两台计算机上 machineKey 配置元素中的 decryptionkey 和 validationKey 属性都需要使用相同的值。&lt;br /&gt;6) name - 用于身份验证的 HTTP Cookie 的名称。注意，如果多个应用程序需要在一台计算机上使用基于窗体的身份验证服务，并且每个应用程序都希望由应用程序隔离 Forms 身份验证 Cookie，则每个应用程序都应配置一个唯一的 Cookie 值。为避免在 URL 中产生依赖项，在设置身份验证 Cookie 时，ASP.NET 还使用“/”作为 Path 值，以便将这些 Cookie 发送回站点上的每个应用程序。&lt;br /&gt;7) path - 用于发出的 Cookie 的路径。默认值为“/”，以避免路径中大小写不匹配的造成的困难，因为在返回 Cookie 时，浏览器是严格区分大小写的。共享服务器环境中的应用程序应使用此指令来维护专用 Cookie。（它们还可以使用 API 在运行时指定路径来发出 Cookie。） &lt;br /&gt;8) protection - 用于保护 Cookie 数据的方法。有效值如下： &lt;br /&gt;·All - 同时使用数据验证和加密来保护 Cookie。所配置的数据验证算法是基于 &amp;lt;machinekey&amp;gt; 元素的。如果密钥足够长（48 个字符），默认情况下将使用 AES 进行加密。All 是默认（和建议）值。 &lt;br /&gt;·None - 用于仅将 Cookie 用于个性化设置并且安全性要求不高的站点。加密和验证都可以被禁用。尽管以此方式使用 Cookie 需谨慎，但对于使用 .NET Framework 实现个性化设置的任何方法，此设置提供了最佳性能。 &lt;br /&gt;·Encryption - 使用 AES、TripleDES 或 DES 加密 Cookie，但不对 Cookie 进行数据验证。这类 Cookie 容易受到精心选择的纯文本的攻击。&lt;br /&gt;·Validation - 不加密 Cookie 的内容，但验证 Cookie 数据在传输过程中是否未被更改。若要创建 Cookie，验证密钥在缓冲区中与 Cookie 数据连接，并且计算出 MAC 并将其追加到输出的 Cookie。 &lt;br /&gt;9) requireSSL - 如果设置为 true，则 Forms 身份验证会设置 Forms 身份验证 Cookie 的安全位。兼容的浏览器只将 Cookie 通过 SSL 连接发送回 ASP.NET。注意，如果使用无 Cookie Forms 身份验证，则此设置无效。 &lt;br /&gt;10) slidingExpiration - 如果设置为 true，则 Forms 身份验证将定期更新 Forms 身份验证票的生存期。无论票证是包含在 Cookie 中，还是以无 Cookie 的格式包含在 URL 中，都会进行此操作。 &lt;br /&gt;11) timeout - 时间量（以整数分钟为单位），经过该时间量之后，Cookie 则会过期。默认值是 30。超时属性是一个可调值，从收到上次请求的时间开始计算，它将在 n 分钟后过期。为了避免对性能产生负面影响，也为了避免那些打开了 Cookie 警告的应用程序产生多个浏览器警告，Cookie 在超时时间过半时更新。（这意味着在某些情况下可能会出现精度损失。） （注意：createPersistentCookie为true的话，则该属性失效，过期时间将为50年）&lt;br /&gt;&lt;br /&gt;3、授权用户和角色设置&amp;lt;system.web&amp;gt;元素下的&amp;lt;authorization&amp;gt;元素，示例如下，仅为说明&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;authorization&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;allow &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;VERB&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;POST&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; users&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;webabcd@gmail.com&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;allow &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;roles&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;admin&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;deny &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;users&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;allow &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;VERB&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;GET&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; users&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;abc,xyz&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;deny &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;users&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;?&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;authorization&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;注：可以把授权用户和角色设置的配置写在某个文件夹内，则所做的配置只作用于该文件夹内，自动继承外面的配置。&lt;br /&gt;allow - 允许&lt;br /&gt;deny - 拒绝&lt;br /&gt;users - 用户（多用户用逗号隔开）&lt;br /&gt;roles - 角色（多角色用逗号隔开）&lt;br /&gt;verb - 指定http方法，post或get&lt;br /&gt;* - 所有用户&lt;br /&gt;? - 匿名（未经过身份验证的）用户&lt;br /&gt;&lt;br /&gt;4、分路径设置授权用户和角色设置，示例如下，仅为说明&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;location &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;folder&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;system&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;.web&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;authorization&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;deny &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;users&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;?&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;allow &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;users&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;authorization&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;system.web&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;location&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;location &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;abc.aspx&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;system&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;.web&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;authorization&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;allow &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;roles&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Administrators&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;deny &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;users&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;authorization&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;system.web&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;location&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&amp;lt;location&amp;gt;元素的path属性可以是文件夹也可以是某一文件&lt;br /&gt;&lt;br /&gt;5、&amp;lt;membership&amp;gt;元素设置，示例如下，仅为说明&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;membership &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;defaultProvider&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;SqlMembershipProvider&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;providers&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;clear&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;add &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;SqlMembershipProvider&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; type&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; connectionStringName&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;SqlConnectionString&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; enablePasswordRetrieval&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; enablePasswordReset&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; requiresQuestionAndAnswer&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; applicationName&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; requiresUniqueEmail&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; passwordFormat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Hashed&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; maxInvalidPasswordAttempts&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;3&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; minRequiredPasswordLength&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;3&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; minRequiredNonalphanumericCharacters&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; passwordAttemptWindow&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;10&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; passwordStrengthRegularExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;providers&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;membership&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;enablePasswordRetrieval - 是否可以检索用户密码（总是false）&lt;br /&gt;enablePasswordReset - 是否允许用户重置其密码&lt;br /&gt;requiresQuestionAndAnswer - 是否要求在创建用户时提供密码提示问题和答案&lt;br /&gt;applicationName - 自定义成员资格提供程序的应用程序的名称&lt;br /&gt;requiresUniqueEmail - 电子邮件地址是否必须是唯一的&lt;br /&gt;passwordFormat - 存储的密码的格式&lt;br /&gt;maxInvalidPasswordAttempts - 指定允许的无效密码或无效密码提示问题答案尝试的次数。当无效尝试的次数达到配置的值时，将锁定该成员资格用户&lt;br /&gt;minRequiredPasswordLength - 密码所要求的最小长度&lt;br /&gt;minRequiredNonalphanumericCharacters - 有效密码中必须包含的最少特殊字符数&lt;br /&gt;passwordAttemptWindow - 跟踪失败的尝试所用的时间（以分钟为单位）。每当发生另一次失败时都将重置窗口。如果达到了允许的无效密码或密码提示问题答案的最大尝试次数，将锁定成员资格用户&lt;br /&gt;passwordStrengthRegularExpression - 用于验证密码的正则表达式&lt;br /&gt;&lt;br /&gt;6、&amp;lt;roleManager&amp;gt;元素设置，示例如下，仅为说明&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;roleManager &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;defaultProvider&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;SqlRoleProvider&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; enabled&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; cacheRolesInCookie&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; cookieName&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;.VS2005_Role&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; cookieTimeout&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;30&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; cookiePath&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; cookieRequireSSL&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; cookieSlidingExpiration&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; cookieProtection&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;All&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;providers&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;add&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;SqlRoleProvider&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; type&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;System.Web.Security.SqlRoleProvider&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; connectionStringName&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;SqlConnectionString&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; applicationName&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;providers&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;roleManager&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;各属性详细说明参看MSDN，索引处查找“roleManager 元素”&lt;br /&gt;&lt;br /&gt;7、使用加密密码&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;authentication&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;credentials &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;passwordFormat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;SHA1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;user &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Mary&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; password&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;94F85995C7492EEC546C321821AA4BECA9A3E2B1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;user &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;John&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; password&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;5753A498F025464D72E088A9D5D6E872592D5F91&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;credentials&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;authentication&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;使用FormsAuthentication.HashPasswordForStoringInConfigFile(String password, String passwordFormat)生成密码&lt;br /&gt;Clear - 密码以明文形式存储 &lt;br /&gt;SHA1 - 密码存储为 SHA1 摘要 &lt;br /&gt;MD5 - 密码存储为 MD5 摘要 &lt;br /&gt;&lt;br /&gt;8、使用用户帐户模拟，在&amp;lt;system.web&amp;gt;元素下加如下元素&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;identity &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;impersonate&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; username&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; password&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;9、常用的就是如下这些东东&lt;br /&gt;System.Web.Security.Membership，System.Web.Security.MembershipUser，System.Web.Security.Roles，Page.User&lt;br /&gt;FormsAuthentication.RedirectFromLoginPage，FormsAuthentication.SetAuthCookie，FormsAuthentication.SignOut&lt;br /&gt;重写那些Provider的话，参看源码中微软提供的示例&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;示例&lt;br /&gt;读取用户名和验证类型&lt;br /&gt;Security/Test.aspx&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px&quot;&gt;&lt;img id=&quot;Codehighlighter1_2_148_Open_Image&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/kjse7e_114628_2.gif&quot; /&gt;&lt;img style=&quot;display: none&quot; id=&quot;Codehighlighter1_2_148_Closed_Image&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/gifr5z_114628_3.gif&quot; /&gt;&lt;span style=&quot;background-color: rgb(255,255,0); color: rgb(0,0,0)&quot;&gt;&amp;lt;%&lt;/span&gt;&lt;span style=&quot;border-bottom: rgb(128,128,128) 1px solid; border-left: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255); display: none; border-top: rgb(128,128,128) 1px solid; border-right: rgb(128,128,128) 1px solid&quot; id=&quot;Codehighlighter1_2_148_Closed_Text&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1107/06wlp5_114628_4.gif&quot; /&gt;&lt;/span&gt;&lt;span id=&quot;Codehighlighter1_2_148_Open_Text&quot;&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;@ Page Language&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;C#&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt; MasterPageFile&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;~/Site.master&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt; AutoEventWireup&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt; CodeFile&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;Test.aspx.cs&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/4sefa0_114628_5.gif&quot; /&gt; Inherits&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;Security_Test&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt; Title&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;读取用户名和验证类型&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(255,255,0); color: rgb(0,0,0)&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:Content &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Content1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; ContentPlaceHolderID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;ContentPlaceHolder1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; 用户名称：&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(255,255,0); color: rgb(0,0,0)&quot;&gt;&amp;lt;%&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;User.Identity.Name &lt;/span&gt;&lt;span style=&quot;background-color: rgb(255,255,0); color: rgb(0,0,0)&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;br &lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; 验证类型：&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(255,255,0); color: rgb(0,0,0)&quot;&gt;&amp;lt;%&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;User.Identity.AuthenticationType &lt;/span&gt;&lt;span style=&quot;background-color: rgb(255,255,0); color: rgb(0,0,0)&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:Content&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;Membership测试&lt;br /&gt;App_Code/User.cs&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Data; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Configuration; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.Security; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI.WebControls; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI.WebControls.WebParts; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI.HtmlControls; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.ComponentModel; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;User&amp;nbsp;的摘要说明 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;[DataObject(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;)] &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;class&lt;/span&gt;&lt;span&gt;&amp;nbsp;User &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;User() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;// &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//&amp;nbsp;TODO:&amp;nbsp;在此处添加构造函数逻辑 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;// &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;获得所有用户 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataObjectMethod(DataObjectMethodType.Select,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;)] &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;MembershipUserCollection&amp;nbsp;GetMembers() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MembershipUserCollection&amp;nbsp;muc&amp;nbsp;=&amp;nbsp;Membership.GetAllUsers(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt;&lt;span&gt;&amp;nbsp;muc; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;删除用户 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataObjectMethod(DataObjectMethodType.Delete,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;)] &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;DeleteMember(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;&amp;nbsp;username) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Membership.DeleteUser(username,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;Security/User.aspx&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px&quot;&gt;&lt;img id=&quot;Codehighlighter1_2_150_Open_Image&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/kjse7e_114628_2.gif&quot; /&gt;&lt;img style=&quot;display: none&quot; id=&quot;Codehighlighter1_2_150_Closed_Image&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/gifr5z_114628_3.gif&quot; /&gt;&lt;span style=&quot;background-color: rgb(255,255,0); color: rgb(0,0,0)&quot;&gt;&amp;lt;%&lt;/span&gt;&lt;span style=&quot;border-bottom: rgb(128,128,128) 1px solid; border-left: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255); display: none; border-top: rgb(128,128,128) 1px solid; border-right: rgb(128,128,128) 1px solid&quot; id=&quot;Codehighlighter1_2_150_Closed_Text&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1107/06wlp5_114628_4.gif&quot; /&gt;&lt;/span&gt;&lt;span id=&quot;Codehighlighter1_2_150_Open_Text&quot;&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;@ Page Language&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;C#&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt; MasterPageFile&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;~/Site.master&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt; AutoEventWireup&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt; CodeFile&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;User.aspx.cs&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/4sefa0_114628_5.gif&quot; /&gt; Inherits&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;Security_User&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt; Title&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;Membership测试&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(255,255,0); color: rgb(0,0,0)&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:Content &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Content1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; ContentPlaceHolderID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;ContentPlaceHolder1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:Label &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;lblMsg&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; ForeColor&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;red&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; 用户名：&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:TextBox &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;txtUsername&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:TextBox&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; 密&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;码：&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:TextBox &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;txtPassword&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:TextBox&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:Button &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;btnSubmit&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; Text&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;添加&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; OnClick&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;btnSubmit_Click&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:GridView &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;GridView1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; DataKeyNames&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;UserName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; AutoGenerateColumns&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;False&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; DataSourceID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;ObjectDataSource1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;Columns&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:CommandField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ShowDeleteButton&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:BoundField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;ProviderName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;ProviderName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; ReadOnly&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;ProviderName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:CheckBoxField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;IsOnline&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;IsOnline&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; ReadOnly&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;IsOnline&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:BoundField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;LastPasswordChangedDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;LastPasswordChangedDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; ReadOnly&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;LastPasswordChangedDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:BoundField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;PasswordQuestion&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;PasswordQuestion&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; ReadOnly&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;PasswordQuestion&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:CheckBoxField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;IsLockedOut&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;IsLockedOut&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; ReadOnly&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;IsLockedOut&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:BoundField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Comment&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Comment&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Comment&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:BoundField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;UserName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;UserName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; ReadOnly&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;UserName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:BoundField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Email&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Email&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Email&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:BoundField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;CreationDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;CreationDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; ReadOnly&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;CreationDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:CheckBoxField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;IsApproved&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;IsApproved&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;IsApproved&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:BoundField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;LastLockoutDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;LastLockoutDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; ReadOnly&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;LastLockoutDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:BoundField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;LastLoginDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;LastLoginDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;LastLoginDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:BoundField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;LastActivityDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;LastActivityDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;LastActivityDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;Columns&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:GridView&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:ObjectDataSource &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;ObjectDataSource1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; SelectMethod&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;GetMembers&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; TypeName&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;User&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; DeleteMethod&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;DeleteMember&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;DeleteParameters&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:Parameter &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;username&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; Type&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;String&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;DeleteParameters&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:ObjectDataSource&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; 备注：&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;br &lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; 用户和角色之间的操作如下&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;br &lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; Roles.AddUserToRole - 向角色添加用户&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;br &lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; Roles.RemoveUserFromRole - 从角色删除用户&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;br &lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; Roles.GetRolesForUser - 用户所属的角色列表&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;br &lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:Content&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;Security/User.aspx.cs&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Data; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Configuration; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Collections; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.Security; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI.WebControls; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI.WebControls.WebParts; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI.HtmlControls; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;partial&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;class&lt;/span&gt;&lt;span&gt;&amp;nbsp;Security_User&amp;nbsp;:&amp;nbsp;System.Web.UI.Page &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;protected&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;Page_Load(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;object&lt;/span&gt;&lt;span&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;protected&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;btnSubmit_Click(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;object&lt;/span&gt;&lt;span&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MembershipCreateStatus&amp;nbsp;status; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Membership.CreateUser(txtUsername.Text.Trim(),&amp;nbsp;txtPassword.Text.Trim(),&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;null&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;null&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;null&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;out&lt;/span&gt;&lt;span&gt;&amp;nbsp;status); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;&amp;nbsp;strInsertMessage&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;switch&lt;/span&gt;&lt;span&gt;&amp;nbsp;(status) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;case&lt;/span&gt;&lt;span&gt;&amp;nbsp;MembershipCreateStatus.Success: &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;break&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;case&lt;/span&gt;&lt;span&gt;&amp;nbsp;MembershipCreateStatus.DuplicateUserName: &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;strInsertMessage&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;用户名重复&amp;quot;&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;break&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;case&lt;/span&gt;&lt;span&gt;&amp;nbsp;MembershipCreateStatus.InvalidUserName: &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;strInsertMessage&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;用户名输入错误&amp;quot;&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;break&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;case&lt;/span&gt;&lt;span&gt;&amp;nbsp;MembershipCreateStatus.InvalidPassword: &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;strInsertMessage&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;密码输入不符合要求&amp;quot;&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;break&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;default&lt;/span&gt;&lt;span&gt;: &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;strInsertMessage&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;出现未知错误&amp;quot;&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;break&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;&amp;nbsp;(strInsertMessage&amp;nbsp;!=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;lblMsg.Text&amp;nbsp;=&amp;nbsp;strInsertMessage; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;lblMsg.Text&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;注册成功&amp;quot;&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;GridView1.DataBind(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;RoleManager测试&lt;br /&gt;App_Code/Role.cs&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Data; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Configuration; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.Security; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;comment&quot;&gt;//using&amp;nbsp;System.Web.UI.WebControls; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;comment&quot;&gt;//using&amp;nbsp;System.Web.UI.WebControls.WebParts; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;comment&quot;&gt;//using&amp;nbsp;System.Web.UI.HtmlControls; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Collections.Generic; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.ComponentModel; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;Role&amp;nbsp;的摘要说明 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;[DataObject(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;)] &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;class&lt;/span&gt;&lt;span&gt;&amp;nbsp;Role &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;Role() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;// &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//&amp;nbsp;TODO:&amp;nbsp;在此处添加构造函数逻辑 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;// &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;nbsp;得到所有角色 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;param&amp;nbsp;name=&amp;quot;userName&amp;quot;&amp;gt;用户名称&amp;lt;/param&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataObjectMethod(DataObjectMethodType.Select,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;)] &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;static&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;List&amp;lt;RoleData&amp;gt;&amp;nbsp;GetRoles() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RoleData&amp;nbsp;r&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;null&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;lt;RoleData&amp;gt;&amp;nbsp;roleList&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;List&amp;lt;RoleData&amp;gt;(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;[]&amp;nbsp;ary&amp;nbsp;=&amp;nbsp;Roles.GetAllRoles(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;foreach&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;&amp;nbsp;s&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;in&lt;/span&gt;&lt;span&gt;&amp;nbsp;ary) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;r&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;RoleData(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;r.RoleName&amp;nbsp;=&amp;nbsp;s; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;roleList.Add(r); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt;&lt;span&gt;&amp;nbsp;roleList; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;删除角色 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;param&amp;nbsp;name=&amp;quot;roleName&amp;quot;&amp;gt;角色名称&amp;lt;/param&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataObjectMethod(DataObjectMethodType.Delete,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;)] &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;static&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;DeleteRole(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;&amp;nbsp;roleName) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MembershipUserCollection&amp;nbsp;muc&amp;nbsp;=&amp;nbsp;Membership.GetAllUsers(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;[]&amp;nbsp;allUserNames&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;[1]; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;foreach&lt;/span&gt;&lt;span&gt;&amp;nbsp;(MembershipUser&amp;nbsp;mu&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;in&lt;/span&gt;&lt;span&gt;&amp;nbsp;muc) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;&amp;nbsp;(Roles.IsUserInRole(mu.UserName,&amp;nbsp;roleName)) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;allUserNames[0]&amp;nbsp;=&amp;nbsp;mu.UserName; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;Roles.RemoveUsersFromRole(allUserNames,&amp;nbsp;roleName); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Roles.DeleteRole(roleName); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;角色的实体类 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;class&lt;/span&gt;&lt;span&gt;&amp;nbsp;RoleData &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;protected&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;&amp;nbsp;_roleName; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;角色名称&amp;nbsp;关键字 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataObjectField(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;)] &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;&amp;nbsp;RoleName &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;get&lt;/span&gt;&lt;span&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;this&lt;/span&gt;&lt;span&gt;._roleName;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;set&lt;/span&gt;&lt;span&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;this&lt;/span&gt;&lt;span&gt;._roleName&amp;nbsp;=&amp;nbsp;value;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;Security/Role.aspx&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px&quot;&gt;&lt;img id=&quot;Codehighlighter1_2_151_Open_Image&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/kjse7e_114628_2.gif&quot; /&gt;&lt;img style=&quot;display: none&quot; id=&quot;Codehighlighter1_2_151_Closed_Image&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/gifr5z_114628_3.gif&quot; /&gt;&lt;span style=&quot;background-color: rgb(255,255,0); color: rgb(0,0,0)&quot;&gt;&amp;lt;%&lt;/span&gt;&lt;span style=&quot;border-bottom: rgb(128,128,128) 1px solid; border-left: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255); display: none; border-top: rgb(128,128,128) 1px solid; border-right: rgb(128,128,128) 1px solid&quot; id=&quot;Codehighlighter1_2_151_Closed_Text&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1107/06wlp5_114628_4.gif&quot; /&gt;&lt;/span&gt;&lt;span id=&quot;Codehighlighter1_2_151_Open_Text&quot;&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;@ Page Language&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;C#&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt; MasterPageFile&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;~/Site.master&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt; AutoEventWireup&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt; CodeFile&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;Role.aspx.cs&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/4sefa0_114628_5.gif&quot; /&gt; Inherits&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;Security_Role&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt; Title&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;RoleManager测试&lt;/span&gt;&lt;span style=&quot;background-color: rgb(245,245,245); color: rgb(0,0,0)&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(255,255,0); color: rgb(0,0,0)&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:Content &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Content1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; ContentPlaceHolderID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;ContentPlaceHolder1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:Label &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;lblMsg&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; ForeColor&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;red&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; 角色名：&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:TextBox &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;txtRolename&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:TextBox&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:Button &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;btnSubmit&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; Text&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;添加&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; OnClick&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;btnSubmit_Click&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:GridView &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;GridView1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; DataKeyNames&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;RoleName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; DataSourceID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;ObjectDataSource1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; AutoGenerateColumns&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;False&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;Columns&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:CommandField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ShowDeleteButton&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:BoundField &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;DataField&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;RoleName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; HeaderText&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;RoleName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; ReadOnly&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; SortExpression&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;RoleName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;Columns&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:GridView&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:ObjectDataSource &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;ObjectDataSource1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; runat&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; DeleteMethod&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;DeleteRole&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; SelectMethod&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;GetRoles&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; TypeName&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;Role&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;DeleteParameters&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:Parameter &lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;roleName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255,0,0)&quot;&gt; Type&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;=&amp;quot;String&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;DeleteParameters&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:ObjectDataSource&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; 备注：&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;br &lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; 用户和角色之间的操作如下&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;br &lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; Roles.AddUserToRole - 向角色添加用户&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;br &lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; Roles.RemoveUserFromRole - 从角色删除用户&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;br &lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt; Roles.GetRolesForUser - 用户所属的角色列表&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;br &lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(128,0,0)&quot;&gt;asp:Content&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,255)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0,0,0)&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1107/ux0280_114627_1.gif&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;Security/Role.aspx.cs&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Data; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Configuration; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Collections; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.Security; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI.WebControls; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI.WebControls.WebParts; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI.HtmlControls; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;partial&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;class&lt;/span&gt;&lt;span&gt;&amp;nbsp;Security_Role&amp;nbsp;:&amp;nbsp;System.Web.UI.Page &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;protected&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;Page_Load(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;object&lt;/span&gt;&lt;span&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;protected&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;btnSubmit_Click(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;object&lt;/span&gt;&lt;span&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;&amp;nbsp;(Roles.RoleExists(txtRolename.Text.Trim())) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;lblMsg.Text&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;该角色已存在&amp;quot;&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;Roles.CreateRole(txtRolename.Text.Trim()); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;GridView1.DataBind(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;注：需要用aspnet_regsql配置数据库&lt;br /&gt;&lt;a href=&quot;http://www.517sou.net/Attach/month_1107/t7g982_membership_and_rolemanager.rar&quot;&gt;源码下载&lt;/a&gt;&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/ASPNET_Membership_and_RoleManager.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/633/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/ASPNET_Membership_and_RoleManager.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/633/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/logview-template-ctrls-aspnet.aspx</link>
		<title>Access LoginView Templated Controls with ASP 4.0 and C#</title>
		<author>shanyiwan@live.com()</author>
		<category>DotNet专栏</category>
		<pubDate>Fri, 15 Jul 2011 01:07:37 GMT</pubDate>
		<description>&lt;p&gt;This tutorial we will demonstrate how to access ASP.NET controls located in the LoggedInTemplate of a LoginView Control from the C# code behind class.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Adding the LoginView Control&lt;/strong&gt;&lt;br /&gt;At this point in the tutorial I have created a new ASP.NET Empty Web Site and have added in a new blank Web Form named Default.aspx. What we need to do now is add a LoginView Control to the Web Form. To do this open up Default.aspx to Design mode and:&lt;/p&gt;&lt;ol type=&quot;1&quot;&gt;&lt;li&gt;Expand the Login tab in your toolbox.&lt;/li&gt;&lt;li&gt;Drag and drop a LoginView Control on to the Web Form.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Yes, it is possible to find a good &lt;a title=&quot;Server Intellect&quot; href=&quot;http://www.serverintellect.com/&quot; target=&quot;_blank&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0066cc&quot;&gt;web host&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. Sometimes it takes a while. After trying several, we went with &lt;a title=&quot;Server Intellect&quot; href=&quot;http://www.serverintellect.com/&quot; target=&quot;_blank&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0066cc&quot;&gt;Server Intellect&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; and have been very happy. They are the most professional, customer service friendly and technically knowledgeable host we&apos;ve found so far.&lt;/p&gt;&lt;p&gt;Now that we have added the LoginView Control, we have the option of adding ASP.NET controls in either the AnonymousTemplate or the LoggedInTemplate appropriately. Either way, when you add a control to a template it goes out of the scope of our Default.aspx.cs code behind class. Let’s add some controls to the LoggedInTemplate and see what happens when we try to access them in C# from our code behind class. To do this:&lt;/p&gt;&lt;ol type=&quot;1&quot;&gt;&lt;li&gt;Expand the LoginView tasks menu.&lt;/li&gt;&lt;img style=&quot;border-bottom: rgb(0,32,96) 2px solid; border-left: rgb(0,32,96) 2px solid; border-top: rgb(0,32,96) 2px solid; border-right: rgb(0,32,96) 2px solid&quot; alt=&quot;SS1.gif&quot; src=&quot;http://www.517sou.net/Attach/month_1107/7sds5m_090926_1.gif&quot; /&gt;&lt;li&gt;In the Views DropDownList, select LoggedInTemplate.&lt;/li&gt;&lt;li&gt;Drag and drop a Label into the editable area of the LoginView Control.&lt;/li&gt;&lt;li&gt;Drag and drop a Button into the editable area of the LoginView Control under the Label.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;We moved our web sites to &lt;a href=&quot;http://www.serverintellect.com/&quot; target=&quot;_blank&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0066cc&quot;&gt;Server Intellect&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; and have found them to be incredibly professional. Their setup is very easy and we were up and running in no time.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Accessing Our Control&lt;/strong&gt;&lt;br /&gt;Right now we will leave the names of these controls default, Label1 and Button1. Normally, when you drop something onto a Web Form you can access the controls directly from the code behind class. However, with the controls in a template, this is not the case. To test this out open up the Default.aspx.cs code behind file and add in the following code to the Page_Load event method:&lt;table style=&quot;table-layout: fixed&quot; width=&quot;90%&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: rgb(153,153,153) 1px solid; border-left: rgb(153,153,153) 1px solid; background-color: rgb(245,245,245); width: 70%; overflow: auto; border-top: rgb(153,153,153) 1px solid; border-right: rgb(153,153,153) 1px solid&quot;&gt;&lt;pre&gt;
Label1.Text = &lt;span style=&quot;color: rgb(163,21,21)&quot;&gt;&amp;quot;Hello World&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Notice, that intellisense immediately underlines Label1 and gives us an error that says ‘The name ‘Label1’ does not exist in the current context’.&lt;br /&gt;&lt;img style=&quot;border-bottom: rgb(0,32,96) 2px solid; border-left: rgb(0,32,96) 2px solid; border-top: rgb(0,32,96) 2px solid; border-right: rgb(0,32,96) 2px solid&quot; alt=&quot;SS2.gif&quot; src=&quot;http://www.517sou.net/Attach/month_1107/dgxb8t_090928_2.gif&quot; /&gt;&lt;br /&gt;&lt;br /&gt;This is a problem if we need to access this Label with C#. The way around this is to access it from the LoginView Control that we added earlier. To do this, get rid of the code we added earlier and open the Default.aspx back up to Design mode. Then double click the button we added earlier to generate a Click event method on that button. Then add the following code to that method:&lt;table style=&quot;table-layout: fixed&quot; width=&quot;90%&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: rgb(153,153,153) 1px solid; border-left: rgb(153,153,153) 1px solid; background-color: rgb(245,245,245); width: 70%; overflow: auto; border-top: rgb(153,153,153) 1px solid; border-right: rgb(153,153,153) 1px solid&quot;&gt;&lt;pre&gt;
((&lt;span style=&quot;color: rgb(43,145,175)&quot;&gt;Label&lt;/span&gt;)LoginView1.FindControl(&lt;span style=&quot;color: rgb(163,21,21)&quot;&gt;&amp;quot;Label1&amp;quot;&lt;/span&gt;)).Text = &lt;span style=&quot;color: rgb(163,21,21)&quot;&gt;&amp;quot;Hello World&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;If you&apos;re looking for a really good web host, try &lt;a href=&quot;http://www.serverintellect.com/&quot; target=&quot;_blank&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0066cc&quot;&gt;Server Intellect&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; - we found the setup procedure and control panel, very easy to adapt to and their IT team is awesome!&lt;/p&gt;&lt;p&gt;What this will do, is call the FindControl method of the LoginView and find the Label we added named Label1. Then, we will cast that as a Label type so that we can access the Text property of it and change that to &apos;Hello World’. Go ahead and load up the website and click the button to make sure that it works. &lt;br /&gt;&lt;br /&gt;The Default.aspx source looks like this:&lt;table style=&quot;table-layout: fixed&quot; width=&quot;90%&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: rgb(153,153,153) 1px solid; border-left: rgb(153,153,153) 1px solid; background-color: rgb(245,245,245); width: 70%; overflow: auto; border-top: rgb(153,153,153) 1px solid; border-right: rgb(153,153,153) 1px solid&quot;&gt;&lt;pre&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;form&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;form1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;LoginView&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;LoginView1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;LoggedInTemplate&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;Label&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;Label1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;Label&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;Label&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;br&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;Button&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;Button1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;Button&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;onclick&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;Button1_Click&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;LoggedInTemplate&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;asp&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;LoginView&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;form&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;The Default.aspx.cs codebehind looks like this:&lt;table style=&quot;table-layout: fixed&quot; width=&quot;90%&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: rgb(153,153,153) 1px solid; border-left: rgb(153,153,153) 1px solid; background-color: rgb(245,245,245); width: 70%; overflow: auto; border-top: rgb(153,153,153) 1px solid; border-right: rgb(153,153,153) 1px solid&quot;&gt;&lt;pre&gt;&lt;span style=&quot;color: blue&quot;&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using&lt;/span&gt; System.Linq;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using&lt;/span&gt; System.Web;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using&lt;/span&gt; System.Web.UI;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using&lt;/span&gt; System.Web.UI.WebControls;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;partial&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: rgb(43,145,175)&quot;&gt;_Default&lt;/span&gt; : System.Web.UI.&lt;span style=&quot;color: rgb(43,145,175)&quot;&gt;Page&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;void&lt;/span&gt; Page_Load(&lt;span style=&quot;color: blue&quot;&gt;object&lt;/span&gt; sender, &lt;span style=&quot;color: rgb(43,145,175)&quot;&gt;EventArgs&lt;/span&gt; e)&lt;br /&gt;    {&lt;br /&gt;&lt;span style=&quot;color: green&quot;&gt;//How we would access the control outside of a template&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: green&quot;&gt;//Label1.Text = &amp;quot;Hello World&amp;quot;;&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;void&lt;/span&gt; Button1_Click(&lt;span style=&quot;color: blue&quot;&gt;object&lt;/span&gt; sender, &lt;span style=&quot;color: rgb(43,145,175)&quot;&gt;EventArgs&lt;/span&gt; e)&lt;br /&gt;    {&lt;br /&gt;&lt;span style=&quot;color: green&quot;&gt;//How we have to access it inside of the template&lt;/span&gt;&lt;br /&gt;        ((&lt;span style=&quot;color: rgb(43,145,175)&quot;&gt;Label&lt;/span&gt;)LoginView1.FindControl(&lt;span style=&quot;color: rgb(163,21,21)&quot;&gt;&amp;quot;Label1&amp;quot;&lt;/span&gt;)).Text = &lt;span style=&quot;color: rgb(163,21,21)&quot;&gt;&amp;quot;Hello World&amp;quot;&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/logview-template-ctrls-aspnet.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/632/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/logview-template-ctrls-aspnet.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/632/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/convert-a-network-in-CIDR-notation.aspx</link>
		<title>convert a network in CIDR notation</title>
		<author>shanyiwan@live.com()</author>
		<category>DotNet专栏</category>
		<pubDate>Fri, 28 Jan 2011 03:15:24 GMT</pubDate>
		<description>&lt;p&gt;&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Arial, &apos;Liberation Sans&apos;, &apos;DejaVu Sans&apos;, sans-serif; line-height: 15px; &quot;&gt;C# code to convert a network in CIDR notation (72.20.10.0/24) to an IP address range&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Arial, &apos;Liberation Sans&apos;, &apos;DejaVu Sans&apos;, sans-serif; line-height: 15px; &quot;&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; &quot;&gt;References:&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;a href=&quot;http://stackoverflow.com/questions/218604/whats-the-best-way-to-convert-from-network-bitcount-to-netmask&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 119, 204); text-decoration: none; cursor: pointer; background-position: initial initial; background-repeat: initial initial; &quot; target=&quot;_blank&quot;&gt;http://stackoverflow.com/questions/218604/whats-the-best-way-to-convert-from-network-bitcount-to-netmask&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&amp;quot;Whatmask&amp;quot; C code from&amp;nbsp;&lt;a href=&quot;http://www.laffeycomputer.com/whatmask.html&quot; rel=&quot;nofollow&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 119, 204); text-decoration: none; cursor: pointer; background-position: initial initial; background-repeat: initial initial; &quot; target=&quot;_blank&quot;&gt;http://www.laffeycomputer.com/whatmask.html&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; &quot;&gt;Usage:&lt;/p&gt;&lt;pre class=&quot;lang-cs prettyprint&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); font-family: Consolas, Menlo, Monaco, &apos;Lucida Console&apos;, &apos;Liberation Mono&apos;, &apos;DejaVu Sans Mono&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, monospace, serif; overflow-x: auto; overflow-y: auto; width: auto; max-height: 600px; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); font-family: Consolas, Menlo, Monaco, &apos;Lucida Console&apos;, &apos;Liberation Mono&apos;, &apos;DejaVu Sans Mono&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, monospace, serif; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;uint&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; startIP&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; endIP&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; &amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;Network2IpRange&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&amp;quot;72.20.10.0/24&amp;quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;out&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; startIP&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;out&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; endIP&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;);&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; &quot;&gt;The code assumes 32 bits for everything.&lt;/p&gt;&lt;pre class=&quot;lang-cs prettyprint&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); font-family: Consolas, Menlo, Monaco, &apos;Lucida Console&apos;, &apos;Liberation Mono&apos;, &apos;DejaVu Sans Mono&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, monospace, serif; overflow-x: auto; overflow-y: auto; width: auto; max-height: 600px; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;code style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); font-family: Consolas, Menlo, Monaco, &apos;Lucida Console&apos;, &apos;Liberation Mono&apos;, &apos;DejaVu Sans Mono&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, monospace, serif; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;static&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;void&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;Network2IpRange&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;string&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; sNetwork&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;out&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;uint&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; startIP&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;out&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;uint&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; endIP&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;uint&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; ip&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: gray; background-position: initial initial; background-repeat: initial initial; &quot;&gt;/* ip address */&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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; mask&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: gray; background-position: initial initial; background-repeat: initial initial; &quot;&gt;/* subnet mask */&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;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; broadcast&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: gray; background-position: initial initial; background-repeat: initial initial; &quot;&gt;/* Broadcast address */&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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; network&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: gray; background-position: initial initial; background-repeat: initial initial; &quot;&gt;/* Network address */&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&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 class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;int&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; bits&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;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; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;string&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; elements &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; sNetwork&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;Split&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;new&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;Char&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&apos;/&apos;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;});&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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; ip &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; IP2Int&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;elements&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;]);&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bits &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;Convert&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;ToInt32&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;elements&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;]);&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mask &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;~(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;0xffffffff&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; bits&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;);&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; network &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; ip &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; mask&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; broadcast &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; network &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;+&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;~&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;mask&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; usableIps &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;bits &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;30&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;)?&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;:(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;broadcast &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; network &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;);&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&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 class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;if&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;usableIps &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&amp;lt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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 class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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; startIP &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; endIP &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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 class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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 class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;else&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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 class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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; startIP &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; network &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;+&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; &amp;nbsp; &amp;nbsp; &amp;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; endIP &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; broadcast &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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 class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;public&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;static&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;uint&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; IP2Int&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;string&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;IPNumber&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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 class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;uint&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; ip &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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 class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;string&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; elements &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;IPNumber&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;Split&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;new&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;Char&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&apos;.&apos;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;});&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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 class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;if&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;elements&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;Length&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;==&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;4&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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 class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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; ip &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;Convert&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;ToUInt32&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;elements&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;])&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;24&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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; ip &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;Convert&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;ToUInt32&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;elements&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;])&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;16&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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; ip &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;Convert&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;ToUInt32&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;elements&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;])&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;8&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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; ip &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;Convert&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; &quot;&gt;ToUInt32&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;elements&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; &quot;&gt;3&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;]);&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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 class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&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 class=&quot;kwd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; &quot;&gt;return&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt; ip&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/convert-a-network-in-CIDR-notation.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/571/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/convert-a-network-in-CIDR-notation.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/571/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/Automatic-upgrade-WinForm-application.aspx</link>
		<title>WinForm应用程序自动升级实现</title>
		<author>shanyiwan@live.com()</author>
		<category>DotNet专栏</category>
		<pubDate>Mon, 15 Nov 2010 06:59:27 GMT</pubDate>
		<description>&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px; &quot;&gt;最近单位开发一个项目，其中需要用到自动升级功能。因为自动升级是一个比较常用的功能，可能会在很多程序中用到，于是，我就想写一个自动升级的组件，在应用程序中，只需要引用这个自动升级组件，并添加少量代码，即可实现自动升级功能。因为我们的程序中可能包含多个exe或者dll文件，所以要支持多文件的更新。&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;main&quot;&gt;&lt;div class=&quot;post&quot;&gt;&lt;div style=&quot;FONT-SIZE: 10pt&quot; twffan=&quot;done&quot;&gt;&lt;p&gt;&lt;br /&gt;首先，要确定程序应该去哪里下载需要升级的文件。我选择了到指定的网站上去下载，这样比较简单，也通用一些。在这个网站上，需要放置一个当前描述最新文件列表的文件，我们估且叫它服务器配置文件。这个文件保存了当前最新文件的版本号(lastver)，大小(size)，下载地址(url)，本地文件的保存路径(path)，还有当更新了这个文件后，程序是否需要重新启动(needRestart)。这个文件大致如下：&lt;br /&gt;updateservice.xml&lt;/p&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;COLOR: #ff00ff&quot; twffan=&quot;done&quot;&gt;xml&amp;nbsp;version=&amp;quot;1.0&amp;quot;&amp;nbsp;encoding=&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;updateFiles&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;AutoUpdater.dll&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;url&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;http://update.iyond.com/CompanyClientApplication/AutoUpdater.zip&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;lastver&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;1.0.0.0&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;size&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;28672&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;needRestart&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;CompanyClient.exe&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;url&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;http://update.iyond.com/CompanyClientApplication/CompanyClient.zip&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;lastver&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;1.1.0.0&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;size&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;888832&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;needRestart&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;HappyFenClient.dll&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;url&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;http://update.iyond.com/CompanyClientApplication/HappyFenClient.zip&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;lastver&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;1.0.0.0&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;size&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;24576&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;needRestart&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;NetworkProvider.dll&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;url&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;http://update.iyond.com/CompanyClientApplication/NetworkProvider.zip&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;lastver&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;1.0.0.0&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;size&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;32768&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;needRestart&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;Utility.dll&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;url&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;http://update.iyond.com/CompanyClientApplication/Utility.zip&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;lastver&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;1.0.0.0&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;size&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;20480&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;needRestart&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;Wizard.dll&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;url&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;http://update.iyond.com/CompanyClientApplication/Wizard.zip&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;lastver&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;1.0.0.0&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;size&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;24576&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;needRestart&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;updateFiles&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;同时，客户端也保存了一个需要升级的本地文件的列表，形式和服务器配置文件差不多，我们叫它本地配置文件。其中，&amp;lt;Enable&amp;gt;节点表示是否启用自动升级功能，&amp;lt;ServerUrl&amp;gt;表示服务器配置文件的地址。&lt;br /&gt;update.config&lt;/p&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;COLOR: #ff00ff&quot; twffan=&quot;done&quot;&gt;xml&amp;nbsp;version=&amp;quot;1.0&amp;quot;&amp;nbsp;encoding=&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;Config&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;xmlns:xsi&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;xmlns:xsd&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;Enabled&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;Enabled&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;ServerUrl&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;http://update.iyond.com/updateservice.xml&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;ServerUrl&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;UpdateFileList&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;LocalFile&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;AutoUpdater.dll&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;lastver&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;1.0.0.0&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;size&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;28672&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;LocalFile&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;CompanyClient.exe&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;lastver&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;1.1.0.0&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;size&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;888832&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;LocalFile&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;HappyFenClient.dll&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;lastver&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;1.0.0.0&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;size&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;24576&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;LocalFile&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;NetworkProvider.dll&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;lastver&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;1.0.0.0&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;size&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;32768&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;LocalFile&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;Utility.dll&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;lastver&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;1.0.0.0&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;size&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;20480&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;LocalFile&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;Wizard.dll&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;lastver&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;1.0.0.0&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;size&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;=&amp;quot;24576&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;UpdateFileList&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot; twffan=&quot;done&quot;&gt;Config&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;使用自动各级组件的程序在启动时，会去检查这个配置文件。如果发现有配置文件中的文件版本和本地配置文件中描述的文件版本不一致，则提示用户下载。同时，如果本地配置文件中某些文件在服务器配置文件的文件列表中不存在，则说明这个文件已经不需要了，需要删除。最后，当升级完成后，会更新本地配置文件。&lt;br /&gt;&lt;br /&gt;我们先来看一下如何使用这个组件。&lt;br /&gt;在程序的Program.cs的Main函数中：&lt;/p&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;[STAThread]&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Main()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.EnableVisualStyles();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.SetCompatibleTextRenderingDefault(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AutoUpdater&amp;nbsp;au&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;AutoUpdater();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&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;au.Update();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(WebException&amp;nbsp;exp)&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;MessageBox.Show(String.Format(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;无法找到指定资源\n\n{0}&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;exp.Message),&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;自动升级&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;MessageBoxButtons.OK,&amp;nbsp;MessageBoxIcon.Error);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(XmlException&amp;nbsp;exp)&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;MessageBox.Show(String.Format(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;下载的升级文件有错误\n\n{0}&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;exp.Message),&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;自动升级&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;MessageBoxButtons.OK,&amp;nbsp;MessageBoxIcon.Error);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(NotSupportedException&amp;nbsp;exp)&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;MessageBox.Show(String.Format(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;升级地址配置错误\n\n{0}&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;exp.Message),&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;自动升级&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;MessageBoxButtons.OK,&amp;nbsp;MessageBoxIcon.Error);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(ArgumentException&amp;nbsp;exp)&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;MessageBox.Show(String.Format(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;下载的升级文件有错误\n\n{0}&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;exp.Message),&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;自动升级&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;MessageBoxButtons.OK,&amp;nbsp;MessageBoxIcon.Error);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(Exception&amp;nbsp;exp)&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;MessageBox.Show(String.Format(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;升级过程中发生错误\n\n{0}&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;exp.Message),&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;自动升级&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;MessageBoxButtons.OK,&amp;nbsp;MessageBoxIcon.Error);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.Run(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;MainUI());&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;如上所示，只需要简单的几行代码，就可以实现自动升级功能了。&lt;br /&gt;&lt;br /&gt;软件运行截图：&lt;br /&gt;&lt;img border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/rluc64_150218_2.png&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/r06y93_150219_3.PNG&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/97nf1g_150219_4.png&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;br /&gt;下面，我们来详细说一下这个自动升级组件的实现。&lt;br /&gt;先看一下类图：&lt;br /&gt;&lt;img border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/y5v7wn_150219_5.png&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;AutoUpdater：自动升级的管理类，负责整体的自动升级功能的实现。&lt;br /&gt;Config：配置类，负责管理本地配置文件。&lt;br /&gt;DownloadConfirm：一个对话框，向用户显示需要升级的文件的列表，并允许用户选择是否马上升级。&lt;br /&gt;DownloadFileInfo：要下载的文件的信息&lt;br /&gt;DownloadProgress：一个对话框，显示下载进度。&lt;br /&gt;DownloadProgress.ExitCallBack，&lt;br /&gt;DownloadProgress.SetProcessBarCallBack，&lt;br /&gt;DownloadProgress.ShowCurrentDownloadFileNameCallBack：由于.NET2.0不允许在一个线程中访问另一个线程的对象，所以需要通过委托来实现。&lt;br /&gt;LocalFile：表示本地配置文件中的一个文件&lt;br /&gt;RemoteFile：表示服务器配置文件中的一个文件。&lt;br /&gt;UpdateFileList：一个集合，从List&amp;lt;LocalFile&amp;gt;继承&lt;br /&gt;&lt;br /&gt;我们先整体看一下AutoUpdater.cs：&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/qe0h5a_150219_6.gif&quot; width=&quot;11&quot; height=&quot;16&quot; twffan=&quot;done&quot; code_open_text_110614.style.=&quot;&quot; code_open_image_110614.style.=&quot;&quot; code_closed_text_110614.style.=&quot;&quot; display=&quot;inline&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/levu3w_150219_7.gif&quot; width=&quot;11&quot; height=&quot;16&quot; twffan=&quot;done&quot; code_open_text_110614.style.=&quot;&quot; code_closed_text_110614.style.=&quot;&quot; display=&quot;none&quot; code_closed_image_110614.style.=&quot;&quot; /&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;AutoUpdater.cs&lt;/span&gt;&lt;span style=&quot;DISPLAY: none&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;AutoUpdater&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/levu3w_150219_7.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_25_4257_closed_text.style.=&quot;&quot; codehighlighter1_25_4257_closed_image.style.=&quot;&quot; codehighlighter1_25_4257_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/qe0h5a_150219_6.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_25_4257_closed_text.style.=&quot;&quot; codehighlighter1_25_4257_open_text.style.=&quot;&quot; codehighlighter1_25_4257_open_image.style.=&quot;&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;FILENAME&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;update.config&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Config&amp;nbsp;config&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;bool&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;bNeedRestart&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;AutoUpdater()&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_175_280_closed_text.style.=&quot;&quot; codehighlighter1_175_280_closed_image.style.=&quot;&quot; codehighlighter1_175_280_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_175_280_closed_text.style.=&quot;&quot; codehighlighter1_175_280_open_text.style.=&quot;&quot; codehighlighter1_175_280_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;config&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Config.LoadConfig(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,&amp;nbsp;FILENAME));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_286_712_closed_text.style.=&quot;&quot; codehighlighter1_286_712_closed_image.style.=&quot;&quot; codehighlighter1_286_712_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_286_712_closed_text.style.=&quot;&quot; codehighlighter1_286_712_open_text.style.=&quot;&quot; codehighlighter1_286_712_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;/**/&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;检查新版本&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;&amp;lt;exception&amp;nbsp;cref=&amp;quot;System.Net.WebException&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;无法找到指定资源&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;&amp;lt;/exception&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;&amp;lt;exception&amp;nbsp;cref=&amp;quot;System.NotSupportException&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;升级地址配置错误&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;&amp;lt;/exception&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;&amp;lt;exception&amp;nbsp;cref=&amp;quot;System.Xml.XmlException&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;下载的升级文件有错误&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;&amp;lt;/exception&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;&amp;lt;exception&amp;nbsp;cref=&amp;quot;System.ArgumentException&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;下载的升级文件有错误&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;&amp;lt;/exception&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;&amp;lt;exception&amp;nbsp;cref=&amp;quot;System.Excpetion&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;未知错误&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;&amp;lt;/exception&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #808080&quot; twffan=&quot;done&quot;&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Update()&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_742_3177_closed_text.style.=&quot;&quot; codehighlighter1_742_3177_closed_image.style.=&quot;&quot; codehighlighter1_742_3177_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_742_3177_closed_text.style.=&quot;&quot; codehighlighter1_742_3177_open_text.style.=&quot;&quot; codehighlighter1_742_3177_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;config.Enabled)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_801_1098_closed_text.style.=&quot;&quot; codehighlighter1_801_1098_closed_image.style.=&quot;&quot; codehighlighter1_801_1098_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_801_1098_closed_text.style.=&quot;&quot; codehighlighter1_801_1098_open_text.style.=&quot;&quot; codehighlighter1_801_1098_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;/**/&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;/*&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;请求Web服务器，得到当前最新版本的文件列表，格式同本地的FileList.xml。&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;与本地的FileList.xml比较，找到不同版本的文件&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;生成一个更新文件列表，开始DownloadProgress&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;lt;UpdateFile&amp;gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;nbsp;&amp;lt;File&amp;nbsp;path=&amp;quot;&amp;quot;&amp;nbsp;url=&amp;quot;&amp;quot;&amp;nbsp;lastver=&amp;quot;&amp;quot;&amp;nbsp;size=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/File&amp;gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;lt;/UpdateFile&amp;gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;path为相对于应用程序根目录的相对目录位置，包括文件名&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WebClient&amp;nbsp;client&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;WebClient();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;strXml&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;client.DownloadString(config.ServerUrl);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dictionary&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;RemoteFile&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;listRemotFile&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ParseRemoteXml(strXml);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;DownloadFileInfo&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;downloadList&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;DownloadFileInfo&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;某些文件不再需要了，删除&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;LocalFile&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;preDeleteFile&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;LocalFile&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(LocalFile&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;config.UpdateFileList)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_1520_2164_closed_text.style.=&quot;&quot; codehighlighter1_1520_2164_closed_image.style.=&quot;&quot; codehighlighter1_1520_2164_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_1520_2164_closed_text.style.=&quot;&quot; codehighlighter1_1520_2164_open_text.style.=&quot;&quot; codehighlighter1_1520_2164_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(listRemotFile.ContainsKey(file.Path))&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_1588_2068_closed_text.style.=&quot;&quot; codehighlighter1_1588_2068_closed_image.style.=&quot;&quot; codehighlighter1_1588_2068_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_1588_2068_closed_text.style.=&quot;&quot; codehighlighter1_1588_2068_open_text.style.=&quot;&quot; codehighlighter1_1588_2068_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RemoteFile&amp;nbsp;rf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;listRemotFile[file.Path];&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(rf.LastVer&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;file.LastVer)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_1712_2004_closed_text.style.=&quot;&quot; codehighlighter1_1712_2004_closed_image.style.=&quot;&quot; codehighlighter1_1712_2004_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_1712_2004_closed_text.style.=&quot;&quot; codehighlighter1_1712_2004_open_text.style.=&quot;&quot; codehighlighter1_1712_2004_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;downloadList.Add(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadFileInfo(rf.Url,&amp;nbsp;file.Path,&amp;nbsp;rf.LastVer,&amp;nbsp;rf.Size));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file.LastVer&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;rf.LastVer;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file.Size&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;rf.Size;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(rf.NeedRestart)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bNeedRestart&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;listRemotFile.Remove(file.Path);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_2099_2154_closed_text.style.=&quot;&quot; codehighlighter1_2099_2154_closed_image.style.=&quot;&quot; codehighlighter1_2099_2154_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_2099_2154_closed_text.style.=&quot;&quot; codehighlighter1_2099_2154_open_text.style.=&quot;&quot; codehighlighter1_2099_2154_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;preDeleteFile.Add(file);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(RemoteFile&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;listRemotFile.Values)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_2233_2503_closed_text.style.=&quot;&quot; codehighlighter1_2233_2503_closed_image.style.=&quot;&quot; codehighlighter1_2233_2503_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_2233_2503_closed_text.style.=&quot;&quot; codehighlighter1_2233_2503_open_text.style.=&quot;&quot; codehighlighter1_2233_2503_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;downloadList.Add(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadFileInfo(file.Url,&amp;nbsp;file.Path,&amp;nbsp;file.LastVer,&amp;nbsp;file.Size));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;config.UpdateFileList.Add(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;LocalFile(file.Path,&amp;nbsp;file.LastVer,&amp;nbsp;file.Size));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(file.NeedRestart)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bNeedRestart&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(downloadList.Count&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_2550_3171_closed_text.style.=&quot;&quot; codehighlighter1_2550_3171_closed_image.style.=&quot;&quot; codehighlighter1_2550_3171_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_2550_3171_closed_text.style.=&quot;&quot; codehighlighter1_2550_3171_open_text.style.=&quot;&quot; codehighlighter1_2550_3171_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DownloadConfirm&amp;nbsp;dc&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadConfirm(downloadList);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.OnShow&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.OnShow();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(DialogResult.OK&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;dc.ShowDialog())&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_2754_3161_closed_text.style.=&quot;&quot; codehighlighter1_2754_3161_closed_image.style.=&quot;&quot; codehighlighter1_2754_3161_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_2754_3161_closed_text.style.=&quot;&quot; codehighlighter1_2754_3161_open_text.style.=&quot;&quot; codehighlighter1_2754_3161_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(LocalFile&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;preDeleteFile)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_2830_3101_closed_text.style.=&quot;&quot; codehighlighter1_2830_3101_closed_image.style.=&quot;&quot; codehighlighter1_2830_3101_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_2830_3101_closed_text.style.=&quot;&quot; codehighlighter1_2830_3101_open_text.style.=&quot;&quot; codehighlighter1_2830_3101_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;filePath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Path.Combine(AppDomain.CurrentDomain.BaseDirectory,&amp;nbsp;file.Path);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(File.Exists(filePath))&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File.Delete(filePath);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;config.UpdateFileList.Remove(file);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StartDownload(downloadList);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;StartDownload(List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;DownloadFileInfo&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;downloadList)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_3252_3782_closed_text.style.=&quot;&quot; codehighlighter1_3252_3782_closed_image.style.=&quot;&quot; codehighlighter1_3252_3782_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_3252_3782_closed_text.style.=&quot;&quot; codehighlighter1_3252_3782_open_text.style.=&quot;&quot; codehighlighter1_3252_3782_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DownloadProgress&amp;nbsp;dp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadProgress(downloadList);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(dp.ShowDialog()&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DialogResult.OK)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_3376_3776_closed_text.style.=&quot;&quot; codehighlighter1_3376_3776_closed_image.style.=&quot;&quot; codehighlighter1_3376_3776_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_3376_3776_closed_text.style.=&quot;&quot; codehighlighter1_3376_3776_open_text.style.=&quot;&quot; codehighlighter1_3376_3776_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;更新成功&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;config.SaveConfig(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,&amp;nbsp;FILENAME));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(bNeedRestart)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_3534_3766_closed_text.style.=&quot;&quot; codehighlighter1_3534_3766_closed_image.style.=&quot;&quot; codehighlighter1_3534_3766_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_3534_3766_closed_text.style.=&quot;&quot; codehighlighter1_3534_3766_open_text.style.=&quot;&quot; codehighlighter1_3534_3766_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MessageBox.Show(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;程序需要重新启动才能应用更新，请点击确定重新启动程序。&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;自动更新&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;MessageBoxButtons.OK,&amp;nbsp;MessageBoxIcon.Information);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Process.Start(Application.ExecutablePath);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Environment.Exit(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Dictionary&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;RemoteFile&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ParseRemoteXml(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;xml)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_3859_4218_closed_text.style.=&quot;&quot; codehighlighter1_3859_4218_closed_image.style.=&quot;&quot; codehighlighter1_3859_4218_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_3859_4218_closed_text.style.=&quot;&quot; codehighlighter1_3859_4218_open_text.style.=&quot;&quot; codehighlighter1_3859_4218_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XmlDocument&amp;nbsp;document&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;XmlDocument();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.LoadXml(xml);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dictionary&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;RemoteFile&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;list&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Dictionary&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;RemoteFile&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(XmlNode&amp;nbsp;node&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;document.DocumentElement.ChildNodes)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_4105_4190_closed_text.style.=&quot;&quot; codehighlighter1_4105_4190_closed_image.style.=&quot;&quot; codehighlighter1_4105_4190_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_4105_4190_closed_text.style.=&quot;&quot; codehighlighter1_4105_4190_open_text.style.=&quot;&quot; codehighlighter1_4105_4190_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&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.Add(node.Attributes[&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;].Value,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;RemoteFile(node));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;list;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;event&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ShowHandler&amp;nbsp;OnShow;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/ulpm3y_150219_13.gif&quot; twffan=&quot;done&quot; /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;在构造函数中，我们先要加载配置文件：&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;AutoUpdater()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;config&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Config.LoadConfig(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,&amp;nbsp;FILENAME));&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;最主要的就是Update()这个函数了。当程序调用au.Update时，首先检查当前是否开户了自动更新：&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;config.Enabled)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;如果启用了自动更新，就需要去下载服务器配置文件了：&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WebClient&amp;nbsp;client&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;WebClient();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;strXml&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;client.DownloadString(config.ServerUrl);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;然后，解析服务器配置文件到一个Dictionary中：&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dictionary&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;RemoteFile&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;listRemotFile&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ParseRemoteXml(strXml);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;接下来比较服务器配置文件和本地配置文件，找出需要下载的文件和本地需要删除的文件：&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;DownloadFileInfo&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;downloadList&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;DownloadFileInfo&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;某些文件不再需要了，删除&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;LocalFile&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;preDeleteFile&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;LocalFile&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(LocalFile&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;config.UpdateFileList)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/levu3w_150219_7.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_229_873_closed_text.style.=&quot;&quot; codehighlighter1_229_873_closed_image.style.=&quot;&quot; codehighlighter1_229_873_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/qe0h5a_150219_6.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_229_873_closed_text.style.=&quot;&quot; codehighlighter1_229_873_open_text.style.=&quot;&quot; codehighlighter1_229_873_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(listRemotFile.ContainsKey(file.Path))&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_297_777_closed_text.style.=&quot;&quot; codehighlighter1_297_777_closed_image.style.=&quot;&quot; codehighlighter1_297_777_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_297_777_closed_text.style.=&quot;&quot; codehighlighter1_297_777_open_text.style.=&quot;&quot; codehighlighter1_297_777_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RemoteFile&amp;nbsp;rf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;listRemotFile[file.Path];&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(rf.LastVer&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;file.LastVer)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_421_713_closed_text.style.=&quot;&quot; codehighlighter1_421_713_closed_image.style.=&quot;&quot; codehighlighter1_421_713_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_421_713_closed_text.style.=&quot;&quot; codehighlighter1_421_713_open_text.style.=&quot;&quot; codehighlighter1_421_713_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;downloadList.Add(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadFileInfo(rf.Url,&amp;nbsp;file.Path,&amp;nbsp;rf.LastVer,&amp;nbsp;rf.Size));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file.LastVer&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;rf.LastVer;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file.Size&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;rf.Size;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(rf.NeedRestart)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bNeedRestart&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;listRemotFile.Remove(file.Path);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_808_863_closed_text.style.=&quot;&quot; codehighlighter1_808_863_closed_image.style.=&quot;&quot; codehighlighter1_808_863_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_808_863_closed_text.style.=&quot;&quot; codehighlighter1_808_863_open_text.style.=&quot;&quot; codehighlighter1_808_863_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;preDeleteFile.Add(file);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/ulpm3y_150219_13.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(RemoteFile&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;listRemotFile.Values)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/levu3w_150219_7.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_942_1212_closed_text.style.=&quot;&quot; codehighlighter1_942_1212_closed_image.style.=&quot;&quot; codehighlighter1_942_1212_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/qe0h5a_150219_6.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_942_1212_closed_text.style.=&quot;&quot; codehighlighter1_942_1212_open_text.style.=&quot;&quot; codehighlighter1_942_1212_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;downloadList.Add(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadFileInfo(file.Url,&amp;nbsp;file.Path,&amp;nbsp;file.LastVer,&amp;nbsp;file.Size));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;config.UpdateFileList.Add(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;LocalFile(file.Path,&amp;nbsp;file.LastVer,&amp;nbsp;file.Size));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(file.NeedRestart)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bNeedRestart&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/ulpm3y_150219_13.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;如果发现有需要下载的文件，则向用户显示这些文件，并提示其是否马上更新。如果用户选择了马上更新，则先删除本地不再需要的文件，然后开始下载更新文件。&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(downloadList.Count&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/levu3w_150219_7.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_44_665_closed_text.style.=&quot;&quot; codehighlighter1_44_665_closed_image.style.=&quot;&quot; codehighlighter1_44_665_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/qe0h5a_150219_6.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_44_665_closed_text.style.=&quot;&quot; codehighlighter1_44_665_open_text.style.=&quot;&quot; codehighlighter1_44_665_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DownloadConfirm&amp;nbsp;dc&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadConfirm(downloadList);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.OnShow&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.OnShow();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(DialogResult.OK&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;dc.ShowDialog())&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_248_655_closed_text.style.=&quot;&quot; codehighlighter1_248_655_closed_image.style.=&quot;&quot; codehighlighter1_248_655_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_248_655_closed_text.style.=&quot;&quot; codehighlighter1_248_655_open_text.style.=&quot;&quot; codehighlighter1_248_655_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(LocalFile&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;preDeleteFile)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_324_595_closed_text.style.=&quot;&quot; codehighlighter1_324_595_closed_image.style.=&quot;&quot; codehighlighter1_324_595_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_324_595_closed_text.style.=&quot;&quot; codehighlighter1_324_595_open_text.style.=&quot;&quot; codehighlighter1_324_595_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;filePath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Path.Combine(AppDomain.CurrentDomain.BaseDirectory,&amp;nbsp;file.Path);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(File.Exists(filePath))&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File.Delete(filePath);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;config.UpdateFileList.Remove(file);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StartDownload(downloadList);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/ulpm3y_150219_13.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;我们再来看一下StartDownload函数&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;StartDownload(List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;DownloadFileInfo&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;downloadList)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/levu3w_150219_7.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_72_602_closed_text.style.=&quot;&quot; codehighlighter1_72_602_closed_image.style.=&quot;&quot; codehighlighter1_72_602_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/qe0h5a_150219_6.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_72_602_closed_text.style.=&quot;&quot; codehighlighter1_72_602_open_text.style.=&quot;&quot; codehighlighter1_72_602_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DownloadProgress&amp;nbsp;dp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadProgress(downloadList);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(dp.ShowDialog()&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DialogResult.OK)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_196_596_closed_text.style.=&quot;&quot; codehighlighter1_196_596_closed_image.style.=&quot;&quot; codehighlighter1_196_596_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_196_596_closed_text.style.=&quot;&quot; codehighlighter1_196_596_open_text.style.=&quot;&quot; codehighlighter1_196_596_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;更新成功&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;config.SaveConfig(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,&amp;nbsp;FILENAME));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(bNeedRestart)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_354_586_closed_text.style.=&quot;&quot; codehighlighter1_354_586_closed_image.style.=&quot;&quot; codehighlighter1_354_586_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_354_586_closed_text.style.=&quot;&quot; codehighlighter1_354_586_open_text.style.=&quot;&quot; codehighlighter1_354_586_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MessageBox.Show(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;程序需要重新启动才能应用更新，请点击确定重新启动程序。&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;自动更新&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;MessageBoxButtons.OK,&amp;nbsp;MessageBoxIcon.Information);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Process.Start(Application.ExecutablePath);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Environment.Exit(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/ulpm3y_150219_13.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;在这个函数中，先调用DownloadProgress下载所有需要下载的文件，然后更新本地配置文件，最后，如果发现某些更新文件需要重新启动应用程序的话，会提示用户重新启动程序。&lt;br /&gt;&lt;br /&gt;至此，AutoUpdater这个类的使命就完成了，其实，整个的升级过程也就完成了。（废话）。&lt;br /&gt;&lt;br /&gt;最后，我们来看一下这个组件是如何下载更新文件的&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/qe0h5a_150219_6.gif&quot; width=&quot;11&quot; height=&quot;16&quot; twffan=&quot;done&quot; display=&quot;inline&quot; code_open_text_112108.style.=&quot;&quot; code_open_image_112108.style.=&quot;&quot; code_closed_text_112108.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/levu3w_150219_7.gif&quot; width=&quot;11&quot; height=&quot;16&quot; twffan=&quot;done&quot; display=&quot;none&quot; code_open_text_112108.style.=&quot;&quot; code_closed_text_112108.style.=&quot;&quot; code_closed_image_112108.style.=&quot;&quot; /&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;DownloadProgress.cs&lt;/span&gt;&lt;span style=&quot;DISPLAY: none&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;System;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;System.Collections.Generic;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;System.ComponentModel;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;System.Data;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;System.Drawing;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;System.Text;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;System.Windows.Forms;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;System.Threading;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;System.Net;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;System.IO;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;System.Diagnostics;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;namespace&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Iyond.Utility&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/levu3w_150219_7.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_275_6022_closed_text.style.=&quot;&quot; codehighlighter1_275_6022_closed_image.style.=&quot;&quot; codehighlighter1_275_6022_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/qe0h5a_150219_6.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_275_6022_closed_text.style.=&quot;&quot; codehighlighter1_275_6022_open_text.style.=&quot;&quot; codehighlighter1_275_6022_open_image.style.=&quot;&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;partial&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadProgress&amp;nbsp;:&amp;nbsp;Form&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_330_6020_closed_text.style.=&quot;&quot; codehighlighter1_330_6020_closed_image.style.=&quot;&quot; codehighlighter1_330_6020_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_330_6020_closed_text.style.=&quot;&quot; codehighlighter1_330_6020_open_text.style.=&quot;&quot; codehighlighter1_330_6020_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;bool&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;isFinished&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;DownloadFileInfo&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;downloadFileList&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ManualResetEvent&amp;nbsp;evtDownload&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ManualResetEvent&amp;nbsp;evtPerDonwload&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;WebClient&amp;nbsp;clientDownload&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadProgress(List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;DownloadFileInfo&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;downloadFileList)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_677_777_closed_text.style.=&quot;&quot; codehighlighter1_677_777_closed_image.style.=&quot;&quot; codehighlighter1_677_777_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_677_777_closed_text.style.=&quot;&quot; codehighlighter1_677_777_open_text.style.=&quot;&quot; codehighlighter1_677_777_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeComponent();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.downloadFileList&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;downloadFileList;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;OnFormClosing(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;sender,&amp;nbsp;FormClosingEventArgs&amp;nbsp;e)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_862_1311_closed_text.style.=&quot;&quot; codehighlighter1_862_1311_closed_image.style.=&quot;&quot; codehighlighter1_862_1311_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_862_1311_closed_text.style.=&quot;&quot; codehighlighter1_862_1311_open_text.style.=&quot;&quot; codehighlighter1_862_1311_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;isFinished&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DialogResult.No&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;MessageBox.Show(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;当前正在更新，是否取消？&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;自动升级&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;MessageBoxButtons.YesNo,&amp;nbsp;MessageBoxIcon.Question))&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_1017_1088_closed_text.style.=&quot;&quot; codehighlighter1_1017_1088_closed_image.style.=&quot;&quot; codehighlighter1_1017_1088_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_1017_1088_closed_text.style.=&quot;&quot; codehighlighter1_1017_1088_open_text.style.=&quot;&quot; codehighlighter1_1017_1088_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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.Cancel&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_1119_1301_closed_text.style.=&quot;&quot; codehighlighter1_1119_1301_closed_image.style.=&quot;&quot; codehighlighter1_1119_1301_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_1119_1301_closed_text.style.=&quot;&quot; codehighlighter1_1119_1301_open_text.style.=&quot;&quot; codehighlighter1_1119_1301_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(clientDownload&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload.CancelAsync();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtDownload.Set();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtPerDonwload.Set();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;OnFormLoad(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_1382_1601_closed_text.style.=&quot;&quot; codehighlighter1_1382_1601_closed_image.style.=&quot;&quot; codehighlighter1_1382_1601_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_1382_1601_closed_text.style.=&quot;&quot; codehighlighter1_1382_1601_open_text.style.=&quot;&quot; codehighlighter1_1382_1601_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtDownload&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ManualResetEvent(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtDownload.Reset();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread&amp;nbsp;t&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Thread(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ThreadStart(ProcDownload));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&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.Name&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;download&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&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.Start();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;total&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;nDownloadedTotal&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ProcDownload()&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_1708_3264_closed_text.style.=&quot;&quot; codehighlighter1_1708_3264_closed_image.style.=&quot;&quot; codehighlighter1_1708_3264_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_1708_3264_closed_text.style.=&quot;&quot; codehighlighter1_1708_3264_open_text.style.=&quot;&quot; codehighlighter1_1708_3264_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtPerDonwload&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ManualResetEvent(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(DownloadFileInfo&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.downloadFileList)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_1850_1900_closed_text.style.=&quot;&quot; codehighlighter1_1850_1900_closed_image.style.=&quot;&quot; codehighlighter1_1850_1900_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_1850_1900_closed_text.style.=&quot;&quot; codehighlighter1_1850_1900_open_text.style.=&quot;&quot; codehighlighter1_1850_1900_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;total&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;file.Size;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;evtDownload.WaitOne(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;))&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_1966_3047_closed_text.style.=&quot;&quot; codehighlighter1_1966_3047_closed_image.style.=&quot;&quot; codehighlighter1_1966_3047_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_1966_3047_closed_text.style.=&quot;&quot; codehighlighter1_1966_3047_open_text.style.=&quot;&quot; codehighlighter1_1966_3047_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.downloadFileList.Count&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;break&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DownloadFileInfo&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.downloadFileList[&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;];&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;Debug.WriteLine(String.Format(&amp;quot;Start&amp;nbsp;Download:{0}&amp;quot;,&amp;nbsp;file.FileName));&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.ShowCurrentDownloadFileName(file.FileName);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;下载&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;WebClient();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload.DownloadProgressChanged&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadProgressChangedEventHandler(OnDownloadProgressChanged);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload.DownloadFileCompleted&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;AsyncCompletedEventHandler(OnDownloadFileCompleted);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtPerDonwload.Reset();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload.DownloadFileAsync(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Uri(file.DownloadUrl),&amp;nbsp;Path.Combine(AppDomain.CurrentDomain.BaseDirectory,&amp;nbsp;file.FileFullName&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.tmp&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;),&amp;nbsp;file);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;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;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;等待下载完成&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtPerDonwload.WaitOne();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload.Dispose();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;移除已下载的文件&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.downloadFileList.Remove(file);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;Debug.WriteLine(&amp;quot;All&amp;nbsp;Downloaded&amp;quot;);&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.downloadFileList.Count&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtDownload.Set();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;OnDownloadFileCompleted(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;sender,&amp;nbsp;AsyncCompletedEventArgs&amp;nbsp;e)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_3354_4095_closed_text.style.=&quot;&quot; codehighlighter1_3354_4095_closed_image.style.=&quot;&quot; codehighlighter1_3354_4095_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_3354_4095_closed_text.style.=&quot;&quot; codehighlighter1_3354_4095_open_text.style.=&quot;&quot; codehighlighter1_3354_4095_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DownloadFileInfo&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;e.UserState&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadFileInfo;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nDownloadedTotal&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;file.Size;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.SetProcessBar(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;)(nDownloadedTotal&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;total));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;Debug.WriteLine(String.Format(&amp;quot;Finish&amp;nbsp;Download:{0}&amp;quot;,&amp;nbsp;file.FileName));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;替换现有文件&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;filePath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Path.Combine(AppDomain.CurrentDomain.BaseDirectory,&amp;nbsp;file.FileFullName);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(File.Exists(filePath))&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_3800_3975_closed_text.style.=&quot;&quot; codehighlighter1_3800_3975_closed_image.style.=&quot;&quot; codehighlighter1_3800_3975_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_3800_3975_closed_text.style.=&quot;&quot; codehighlighter1_3800_3975_open_text.style.=&quot;&quot; codehighlighter1_3800_3975_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(File.Exists(filePath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.old&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;))&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File.Delete(filePath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.old&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File.Move(filePath,&amp;nbsp;filePath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.old&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File.Move(filePath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.tmp&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;filePath);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;继续下载其它文件&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtPerDonwload.Set();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;OnDownloadProgressChanged(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;sender,&amp;nbsp;DownloadProgressChangedEventArgs&amp;nbsp;e)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_4196_4319_closed_text.style.=&quot;&quot; codehighlighter1_4196_4319_closed_image.style.=&quot;&quot; codehighlighter1_4196_4319_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_4196_4319_closed_text.style.=&quot;&quot; codehighlighter1_4196_4319_open_text.style.=&quot;&quot; codehighlighter1_4196_4319_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.SetProcessBar(e.ProgressPercentage,&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;)((nDownloadedTotal&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;e.BytesReceived)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;total));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;delegate&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ShowCurrentDownloadFileNameCallBack(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;name);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ShowCurrentDownloadFileName(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;name)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_4464_4835_closed_text.style.=&quot;&quot; codehighlighter1_4464_4835_closed_image.style.=&quot;&quot; codehighlighter1_4464_4835_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_4464_4835_closed_text.style.=&quot;&quot; codehighlighter1_4464_4835_open_text.style.=&quot;&quot; codehighlighter1_4464_4835_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.labelCurrentItem.InvokeRequired)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_4532_4729_closed_text.style.=&quot;&quot; codehighlighter1_4532_4729_closed_image.style.=&quot;&quot; codehighlighter1_4532_4729_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_4532_4729_closed_text.style.=&quot;&quot; codehighlighter1_4532_4729_open_text.style.=&quot;&quot; codehighlighter1_4532_4729_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ShowCurrentDownloadFileNameCallBack&amp;nbsp;cb&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ShowCurrentDownloadFileNameCallBack(ShowCurrentDownloadFileName);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_4706_4713_closed_text.style.=&quot;&quot; codehighlighter1_4706_4713_closed_image.style.=&quot;&quot; codehighlighter1_4706_4713_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_4706_4713_closed_text.style.=&quot;&quot; codehighlighter1_4706_4713_open_text.style.=&quot;&quot; codehighlighter1_4706_4713_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.Invoke(cb,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;[]&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&amp;nbsp;name&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_4760_4825_closed_text.style.=&quot;&quot; codehighlighter1_4760_4825_closed_image.style.=&quot;&quot; codehighlighter1_4760_4825_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_4760_4825_closed_text.style.=&quot;&quot; codehighlighter1_4760_4825_open_text.style.=&quot;&quot; codehighlighter1_4760_4825_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.labelCurrentItem.Text&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;name;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;delegate&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;SetProcessBarCallBack(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;current,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;total);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;SetProcessBar(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;current,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;total)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_4974_5374_closed_text.style.=&quot;&quot; codehighlighter1_4974_5374_closed_image.style.=&quot;&quot; codehighlighter1_4974_5374_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_4974_5374_closed_text.style.=&quot;&quot; codehighlighter1_4974_5374_open_text.style.=&quot;&quot; codehighlighter1_4974_5374_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.progressBarCurrent.InvokeRequired)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_5044_5209_closed_text.style.=&quot;&quot; codehighlighter1_5044_5209_closed_image.style.=&quot;&quot; codehighlighter1_5044_5209_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_5044_5209_closed_text.style.=&quot;&quot; codehighlighter1_5044_5209_open_text.style.=&quot;&quot; codehighlighter1_5044_5209_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetProcessBarCallBack&amp;nbsp;cb&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;SetProcessBarCallBack(SetProcessBar);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_5176_5193_closed_text.style.=&quot;&quot; codehighlighter1_5176_5193_closed_image.style.=&quot;&quot; codehighlighter1_5176_5193_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_5176_5193_closed_text.style.=&quot;&quot; codehighlighter1_5176_5193_open_text.style.=&quot;&quot; codehighlighter1_5176_5193_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.Invoke(cb,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;[]&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&amp;nbsp;current,&amp;nbsp;total&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_5240_5364_closed_text.style.=&quot;&quot; codehighlighter1_5240_5364_closed_image.style.=&quot;&quot; codehighlighter1_5240_5364_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_5240_5364_closed_text.style.=&quot;&quot; codehighlighter1_5240_5364_open_text.style.=&quot;&quot; codehighlighter1_5240_5364_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.progressBarCurrent.Value&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;current;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.progressBarTotal.Value&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;total;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;delegate&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ExitCallBack(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;bool&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;success);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Exit(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;bool&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;success)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_5475_5870_closed_text.style.=&quot;&quot; codehighlighter1_5475_5870_closed_image.style.=&quot;&quot; codehighlighter1_5475_5870_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_5475_5870_closed_text.style.=&quot;&quot; codehighlighter1_5475_5870_open_text.style.=&quot;&quot; codehighlighter1_5475_5870_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.InvokeRequired)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_5526_5657_closed_text.style.=&quot;&quot; codehighlighter1_5526_5657_closed_image.style.=&quot;&quot; codehighlighter1_5526_5657_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_5526_5657_closed_text.style.=&quot;&quot; codehighlighter1_5526_5657_open_text.style.=&quot;&quot; codehighlighter1_5526_5657_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ExitCallBack&amp;nbsp;cb&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ExitCallBack(Exit);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_5631_5641_closed_text.style.=&quot;&quot; codehighlighter1_5631_5641_closed_image.style.=&quot;&quot; codehighlighter1_5631_5641_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_5631_5641_closed_text.style.=&quot;&quot; codehighlighter1_5631_5641_open_text.style.=&quot;&quot; codehighlighter1_5631_5641_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.Invoke(cb,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;[]&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&amp;nbsp;success&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_5688_5860_closed_text.style.=&quot;&quot; codehighlighter1_5688_5860_closed_image.style.=&quot;&quot; codehighlighter1_5688_5860_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_5688_5860_closed_text.style.=&quot;&quot; codehighlighter1_5688_5860_open_text.style.=&quot;&quot; codehighlighter1_5688_5860_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.isFinished&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;success;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.DialogResult&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;success&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DialogResult.OK&amp;nbsp;:&amp;nbsp;DialogResult.Cancel;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.Close();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;OnCancel(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_5939_6014_closed_text.style.=&quot;&quot; codehighlighter1_5939_6014_closed_image.style.=&quot;&quot; codehighlighter1_5939_6014_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_5939_6014_closed_text.style.=&quot;&quot; codehighlighter1_5939_6014_open_text.style.=&quot;&quot; codehighlighter1_5939_6014_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtDownload.Set();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtPerDonwload.Set();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/ulpm3y_150219_13.gif&quot; twffan=&quot;done&quot; /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;在构造函数中，将要下载的文件列表传进来&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadProgress(List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;DownloadFileInfo&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;downloadFileList)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/levu3w_150219_7.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_81_181_closed_text.style.=&quot;&quot; codehighlighter1_81_181_closed_image.style.=&quot;&quot; codehighlighter1_81_181_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/qe0h5a_150219_6.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_81_181_closed_text.style.=&quot;&quot; codehighlighter1_81_181_open_text.style.=&quot;&quot; codehighlighter1_81_181_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeComponent();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.downloadFileList&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;downloadFileList;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/ulpm3y_150219_13.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;在Form的Load事件中，启动下载线程，开始下载。&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;OnFormLoad(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/levu3w_150219_7.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_68_287_closed_text.style.=&quot;&quot; codehighlighter1_68_287_closed_image.style.=&quot;&quot; codehighlighter1_68_287_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/qe0h5a_150219_6.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_68_287_closed_text.style.=&quot;&quot; codehighlighter1_68_287_open_text.style.=&quot;&quot; codehighlighter1_68_287_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtDownload&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ManualResetEvent(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtDownload.Reset();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread&amp;nbsp;t&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Thread(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ThreadStart(ProcDownload));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&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.Name&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;download&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&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.Start();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/ulpm3y_150219_13.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;下载线程没什么特殊的，使用了WebClient的异步下载文件函数DownloadFileAsync，并且注册了两个事件，分别负责下载进度显示和下载完成后的处理：&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload.DownloadProgressChanged&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadProgressChangedEventHandler(OnDownloadProgressChanged);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload.DownloadFileCompleted&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;AsyncCompletedEventHandler(OnDownloadFileCompleted);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;大家看一下就明白了。&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ProcDownload()&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/levu3w_150219_7.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_44_1600_closed_text.style.=&quot;&quot; codehighlighter1_44_1600_closed_image.style.=&quot;&quot; codehighlighter1_44_1600_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/qe0h5a_150219_6.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_44_1600_closed_text.style.=&quot;&quot; codehighlighter1_44_1600_open_text.style.=&quot;&quot; codehighlighter1_44_1600_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtPerDonwload&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;ManualResetEvent(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(DownloadFileInfo&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.downloadFileList)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_186_236_closed_text.style.=&quot;&quot; codehighlighter1_186_236_closed_image.style.=&quot;&quot; codehighlighter1_186_236_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_186_236_closed_text.style.=&quot;&quot; codehighlighter1_186_236_open_text.style.=&quot;&quot; codehighlighter1_186_236_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;total&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;file.Size;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;evtDownload.WaitOne(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;))&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_302_1383_closed_text.style.=&quot;&quot; codehighlighter1_302_1383_closed_image.style.=&quot;&quot; codehighlighter1_302_1383_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_302_1383_closed_text.style.=&quot;&quot; codehighlighter1_302_1383_open_text.style.=&quot;&quot; codehighlighter1_302_1383_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.downloadFileList.Count&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;break&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DownloadFileInfo&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.downloadFileList[&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;];&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;Debug.WriteLine(String.Format(&amp;quot;Start&amp;nbsp;Download:{0}&amp;quot;,&amp;nbsp;file.FileName));&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.ShowCurrentDownloadFileName(file.FileName);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;下载&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;WebClient();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload.DownloadProgressChanged&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadProgressChangedEventHandler(OnDownloadProgressChanged);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload.DownloadFileCompleted&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;AsyncCompletedEventHandler(OnDownloadFileCompleted);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtPerDonwload.Reset();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload.DownloadFileAsync(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Uri(file.DownloadUrl),&amp;nbsp;Path.Combine(AppDomain.CurrentDomain.BaseDirectory,&amp;nbsp;file.FileFullName&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.tmp&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;),&amp;nbsp;file);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;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;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;等待下载完成&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtPerDonwload.WaitOne();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload.Dispose();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientDownload&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;移除已下载的文件&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.downloadFileList.Remove(file);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;Debug.WriteLine(&amp;quot;All&amp;nbsp;Downloaded&amp;quot;);&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.downloadFileList.Count&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtDownload.Set();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/ulpm3y_150219_13.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;最后，在OnDownloadFileCompleted函数中进行最后的处理。包括备份原文件，替换现有文件等。&lt;br /&gt;&lt;div style=&quot;BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;OnDownloadFileCompleted(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;sender,&amp;nbsp;AsyncCompletedEventArgs&amp;nbsp;e)&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/levu3w_150219_7.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_87_828_closed_text.style.=&quot;&quot; codehighlighter1_87_828_closed_image.style.=&quot;&quot; codehighlighter1_87_828_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/qe0h5a_150219_6.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_87_828_closed_text.style.=&quot;&quot; codehighlighter1_87_828_open_text.style.=&quot;&quot; codehighlighter1_87_828_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DownloadFileInfo&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;e.UserState&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;DownloadFileInfo;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nDownloadedTotal&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;file.Size;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.SetProcessBar(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;)(nDownloadedTotal&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;total));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;Debug.WriteLine(String.Format(&amp;quot;Finish&amp;nbsp;Download:{0}&amp;quot;,&amp;nbsp;file.FileName));&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;替换现有文件&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;filePath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;Path.Combine(AppDomain.CurrentDomain.BaseDirectory,&amp;nbsp;file.FileFullName);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(File.Exists(filePath))&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/9nui96_150219_10.gif&quot; twffan=&quot;done&quot; display=&quot;inline&quot; codehighlighter1_533_708_closed_text.style.=&quot;&quot; codehighlighter1_533_708_closed_image.style.=&quot;&quot; codehighlighter1_533_708_open_text.style.=&quot;&quot; /&gt;&lt;img style=&quot;DISPLAY: none&quot; alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/5nhv7r_150219_11.gif&quot; twffan=&quot;done&quot; display=&quot;none&quot; codehighlighter1_533_708_closed_text.style.=&quot;&quot; codehighlighter1_533_708_open_text.style.=&quot;&quot; codehighlighter1_533_708_open_image.style.=&quot;&quot; /&gt;&amp;nbsp;&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=&quot;BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid&quot; twffan=&quot;done&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1011/gdh91h_150219_8.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span twffan=&quot;done&quot;&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;{&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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=&quot;COLOR: #0000ff&quot; twffan=&quot;done&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;(File.Exists(filePath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.old&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;))&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File.Delete(filePath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.old&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File.Move(filePath,&amp;nbsp;filePath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.old&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/1y9sht_150219_12.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File.Move(filePath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;.tmp&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;,&amp;nbsp;filePath);&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&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=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;继续下载其它文件&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/do96ak_150219_9.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtPerDonwload.Set();&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/ulpm3y_150219_13.gif&quot; twffan=&quot;done&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot; twffan=&quot;done&quot;&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; align=&quot;top&quot; src=&quot;http://www.517sou.net/Attach/month_1011/g3fvb7_150217_1.gif&quot; twffan=&quot;done&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;其它的函数只是一些显示进度条和下载信息的，这里就不再详细介绍了。大家可以下载源码看一下。&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
		<guid>http://www.517sou.net/Article/Automatic-upgrade-WinForm-application.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/541/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/Automatic-upgrade-WinForm-application.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/541/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/Validate-Image-extensions.aspx</link>
		<title>Validate Image extensions</title>
		<author>shanyiwan@live.com()</author>
		<category>DotNet专栏</category>
		<pubDate>Fri, 05 Nov 2010 07:18:08 GMT</pubDate>
		<description>&lt;p&gt;we have checked the posted file of the FileUpload and pass it to the IsImageFile() method that returns a Boolean type for checking the actual type of the posted file. If the file contains image extension such as “jpg”, “gif”, “bmp” and “png” then it will return TRUE else it will return false.&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;private&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;StartUpLoad()&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;&amp;nbsp;(FileUpload1.HasFile)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HttpPostedFile&amp;nbsp;postedFile&amp;nbsp;=&amp;nbsp;FileUpload1.PostedFile;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;&amp;nbsp;(IsImageFile(postedFile))&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;span class=&quot;comment&quot;&gt;//Save&amp;nbsp;image&amp;nbsp;here&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;Response.Write(&lt;span class=&quot;string&quot;&gt;&amp;quot;Invalid&amp;nbsp;File,&amp;nbsp;Cannot&amp;nbsp;Upload!&amp;quot;&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Write(&lt;span class=&quot;string&quot;&gt;&amp;quot;Please&amp;nbsp;select&amp;nbsp;a&amp;nbsp;File&amp;quot;&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;protected&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;bool&lt;/span&gt;&lt;span&gt;&amp;nbsp;IsImageFile(HttpPostedFile&amp;nbsp;file)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;bool&lt;/span&gt;&lt;span&gt;&amp;nbsp;isImage&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;false&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.IO.FileStream&amp;nbsp;fs&amp;nbsp;=&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.IO.FileStream(file.FileName,&amp;nbsp;System.IO.FileMode.Open,&amp;nbsp;System.IO.FileAccess.Read);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.IO.BinaryReader&amp;nbsp;br&amp;nbsp;=&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.IO.BinaryReader(fs);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;&amp;nbsp;fileclass&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;byte&lt;/span&gt;&lt;span&gt;&amp;nbsp;buffer;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;try&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer&amp;nbsp;=&amp;nbsp;br.ReadByte();&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fileclass&amp;nbsp;=&amp;nbsp;buffer.ToString();&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer&amp;nbsp;=&amp;nbsp;br.ReadByte();&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fileclass&amp;nbsp;+=&amp;nbsp;buffer.ToString();&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;catch&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;false&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;finally&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;br.Close();&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fs.Close();&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;comment&quot;&gt;/*extension&amp;nbsp;lists&amp;nbsp;with&amp;nbsp;codes&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*7173&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gif&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*255216&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;jpg&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*13780&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;png&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*6677&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmp&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*239187&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;txt,aspx,asp,sql&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*208207&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xls.doc.ppt&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*6063&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xml&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*6033&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;htm,html&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*4742&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;js&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*8075&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xlsx,zip,pptx,mmap,zip&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*8297&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rar&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;accdb,mdb&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*7790&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exe,dll&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*64101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bat&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;comment&quot;&gt;//only&amp;nbsp;allow&amp;nbsp;images&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;jpg&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gif&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;png&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String[]&amp;nbsp;fileType&amp;nbsp;=&amp;nbsp;{&amp;nbsp;&lt;span class=&quot;string&quot;&gt;&amp;quot;255216&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;7173&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;6677&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;13780&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;};&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt;&lt;span&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;fileType.Length;&amp;nbsp;i++)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;&amp;nbsp;(fileclass&amp;nbsp;==&amp;nbsp;fileType[i])&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;isImage&amp;nbsp;=&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;span class=&quot;keyword&quot;&gt;break&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt;&lt;span&gt;&amp;nbsp;isImage;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/Validate-Image-extensions.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/538/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/Validate-Image-extensions.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/538/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/Microsoft-Chart-Controls.aspx</link>
		<title>Microsoft Chart Controls</title>
		<author>shanyiwan@live.com()</author>
		<category>DotNet专栏</category>
		<pubDate>Tue, 12 Oct 2010 08:35:45 GMT</pubDate>
		<description>&lt;p&gt;&amp;nbsp;&lt;span style=&quot;line-height: 20px; font-family: georgia, verdana, Arial, helvetica, sans-seriff; color: rgb(75,75,75); font-size: 13px&quot; class=&quot;Apple-style-span&quot;&gt;&lt;span style=&quot;font-size: 15px; font-weight: bold&quot; class=&quot;Apple-style-span&quot;&gt;&lt;a style=&quot;color: rgb(67,113,166); text-decoration: none&quot; id=&quot;ctl04_TitleUrl&quot; class=&quot;postTitle2&quot; href=&quot;http://www.cnblogs.com/chenbg2001/archive/2008/12/18/1357490.html&quot; target=&quot;_blank&quot;&gt;.NET 3.5 发布功能强大的新控件(Winform&amp;amp;WebForm) —— Chart&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left; margin: 10px 0px 5px; color: rgb(102,102,102); font-size: 13px&quot;&gt;&lt;span style=&quot;line-height: 28px; font-size: 14pt&quot;&gt;前言&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;11月25号，Scott在博客上发布了基于.NET Framework 3.5 SP1的图表控件——Chart，可在WinForm和WebForm下使用！并同时提供了大量的示例...&lt;/p&gt;&lt;h3 style=&quot;text-align: left; margin: 10px 0px 5px; color: rgb(102,102,102); font-size: 13px&quot;&gt;&lt;span style=&quot;line-height: 28px; font-size: 14pt&quot;&gt;相关下载：&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;li&gt;&lt;a style=&quot;color: rgb(67,113,166)&quot; href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;DisplayLang=en&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#4371a6&quot;&gt;Download the free Microsoft Chart Controls&lt;/font&gt;&lt;/a&gt;&amp;nbsp;（&lt;span style=&quot;line-height: 19px; background-color: yellow&quot;&gt;必须下载安装，包含了System.Web.DataVisualization组件&lt;/span&gt;）&lt;/li&gt;&lt;li&gt;&lt;a style=&quot;color: rgb(67,113,166)&quot; href=&quot;http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&amp;amp;displaylang=en&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#4371a6&quot;&gt;Download the VS 2008 Tool Support for the Chart Controls&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a style=&quot;color: rgb(67,113,166)&quot; href=&quot;http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#4371a6&quot;&gt;Download the Microsoft Chart Controls Samples&lt;/font&gt;&lt;/a&gt;&amp;nbsp;（示例，分为Winform和WebForm的，打开后各有200个示例）&lt;/li&gt;&lt;li&gt;&lt;a style=&quot;color: rgb(67,113,166)&quot; href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyId=EE8F6F35-B087-4324-9DBA-6DD5E844FD9F&amp;amp;displaylang=en&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#4371a6&quot;&gt;Download the Microsoft Chart Controls Documentation&lt;/font&gt;&lt;/a&gt;&amp;nbsp;（文档）&lt;/li&gt;&lt;li&gt;&lt;a style=&quot;color: rgb(67,113,166)&quot; href=&quot;http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/threads/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#4371a6&quot;&gt;Visit the Microsoft Chart Control Forum&lt;/font&gt;&lt;/a&gt;&amp;nbsp;（相关社区，如果有问题可在此提出，目前由产品组那边的MSFT支持）&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;官方主页在MSDN上：&lt;/p&gt;&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&lt;a style=&quot;color: rgb(67,113,166)&quot; href=&quot;http://code.msdn.microsoft.com/mschart&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#4371a6&quot;&gt;http://code.msdn.microsoft.com/mschart&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&lt;font color=&quot;#4371a6&quot;&gt;&lt;img style=&quot;border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; alt=&quot;ChartSamples_thumb_1.jpg&quot; src=&quot;http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=mschart&amp;amp;DownloadId=3633&quot; /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;Soctt在他的博客上做了简要介绍，并附上了若干截图：&lt;/p&gt;&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&lt;img style=&quot;border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; class=&quot;Image&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1010/gi05ra_163855_1.png&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&lt;img style=&quot;border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; class=&quot;Image&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1010/pvnk4z_163857_2.png&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&lt;img style=&quot;border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; class=&quot;Image&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1010/j1dhxu_163857_3.png&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 style=&quot;text-align: left; margin: 10px 0px 5px; color: rgb(102,102,102); font-size: 13px&quot;&gt;&lt;span style=&quot;line-height: 28px; font-size: 14pt&quot;&gt;特点：&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;官方公布的特点如下：&lt;/p&gt;&lt;/li&gt;&lt;li&gt;All supported chart types. （支持所有类型图表，截图如下）&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&lt;img style=&quot;border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1010/piy78y_163857_4.png&quot; width=&quot;258&quot; height=&quot;283&quot; /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Data series, chart areas, axes, legends, labels, titles, and more. （元素便于管理，我截了张图，如下）&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&lt;img style=&quot;border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; border=&quot;0&quot; alt=&quot;Chart Elements&quot; class=&quot;Image&quot; src=&quot;http://www.517sou.net/Attach/month_1010/kikk6j_163857_5.png&quot; /&gt;Data&lt;/p&gt;&lt;ul style=&quot;list-style-type: none; margin: 0px 0px 10px 5px; padding-left: 5px; font-size: 12px&quot;&gt;&lt;li&gt;Binding (确实，支持几乎所有类型的数据绑定)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Data manipulation, such as copying, splitting, merging, alignment, grouping, sorting, searching, filtering, and more. （数据实时操作，图表中的数据还可以实时编辑）&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&lt;img style=&quot;border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1010/csyud8_163857_6.png&quot; width=&quot;628&quot; height=&quot;478&quot; /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Statistical formulas and financial formulas. （有适合统计学和金融学的方案，示例中有日K线等实例，如下）&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&lt;img style=&quot;border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1010/8rk8bs_163857_7.png&quot; width=&quot;581&quot; height=&quot;495&quot; /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Advanced chart appearance, such as 3D, anti-aliasing, lighting, perspective, and more. （各种各样的显示效果，比如是否显示3D只需设置一个布尔属性）&lt;/li&gt;&lt;li&gt;Chart rendering.&lt;/li&gt;&lt;li&gt;Events and Customizations. （支持各种事件和定制，如鼠标点击、图表ImageMap等等）&lt;/li&gt;&lt;li&gt;Interactivity and AJAX. （与AJAX交互，可用于实时显示，如下）&lt;p style=&quot;text-indent: 0px; margin: 5px auto&quot;&gt;&lt;img style=&quot;border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://www.517sou.net/Attach/month_1010/3q7l0e_163857_8.png&quot; width=&quot;461&quot; height=&quot;435&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/Microsoft-Chart-Controls.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/531/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/Microsoft-Chart-Controls.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/531/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/asp-net-connect-to-informix.aspx</link>
		<title>asp.net连接远程informix</title>
		<author>shanyiwan@live.com()</author>
		<category>DotNet专栏</category>
		<pubDate>Tue, 23 Jun 2009 09:21:22 GMT</pubDate>
		<description>&lt;p&gt;&lt;b&gt;环境：&lt;/b&gt;&lt;/p&gt;&lt;p&gt;本地：Windows 2003+VS2008,IBM CSDK 3.50&lt;/p&gt;&lt;p&gt;远程：Red Hat Enterprise Linux AS release 4 (Nahant Update 5)+Informix Dynamic Server 2000 Version 9.21.UC2&lt;/p&gt;&lt;p&gt;&lt;b&gt;现象：&lt;/b&gt;&lt;/p&gt;&lt;p&gt;创建ODBC数据源时，提示&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-other&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;“---------------------------IBM&amp;nbsp;Informix&amp;nbsp;ODBC&amp;nbsp;Error&amp;nbsp;Message:---------------------------Test&amp;nbsp;connection&amp;nbsp;was&amp;nbsp;NOT&amp;nbsp;successful.[Informix][Informix&amp;nbsp;ODBC&amp;nbsp;Driver][Informix]Client&amp;nbsp;host&amp;nbsp;or&amp;nbsp;user&amp;nbsp;(informix@zzy-flyinweb)&amp;nbsp;is&amp;nbsp;not&amp;nbsp;trusted&amp;nbsp;by&amp;nbsp;the&amp;nbsp;server.-----------------------”&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;b&gt;解决办法：&lt;/b&gt;&lt;/p&gt;&lt;p&gt;在远程服务器上创建/etc/hosts.equiv 文件，内容如下：&lt;/p&gt;&lt;p&gt;[root@datacenter ~]# cat /etc/hosts.equiv &lt;br /&gt;zzy-flyinweb&lt;br /&gt;59.57.251.62&lt;/p&gt;&lt;p&gt;&lt;b&gt;现象：&lt;/b&gt;&lt;/p&gt;&lt;p&gt;报错：&lt;span style=&quot;color: #ff0000&quot;&gt;System.Data.Odbc.OdbcException: ERROR [42000] [Informix][Informix ODBC Driver][Informix]A syntax error has occurred.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;解决办法：&lt;/b&gt;&lt;/p&gt;&lt;p&gt;请检查SQL语句是还正确&lt;/p&gt;&lt;p&gt;特别注意：VS2008在自动生成的SQL代码中，会将字段名及表名加[]号括起，而这可能会引起语法错误（不知是不是Informix的原因，去掉相关的中括号即可）&lt;/p&gt;&lt;p&gt;另外，OLEDB方式一直没有通过，原因未知&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/asp-net-connect-to-informix.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/97/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/asp-net-connect-to-informix.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/97/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/Connect-to-Informix-with-ADO-DOT-NET.aspx</link>
		<title>Connect to Informix with ADO.NET</title>
		<author>shanyiwan@live.com()</author>
		<category>DotNet专栏</category>
		<pubDate>Tue, 23 Jun 2009 07:07:21 GMT</pubDate>
		<description>&lt;p&gt;06 Oct 2005&lt;/p&gt;&lt;blockquote&gt;Delve into the details of using ADO.Net and Informix® Dynamic Server beyond the basic connection string. This article covers stored procedures and parameterized SQL. Then it presents a model (with code) for generating your own strongly typed DataSets. &lt;/blockquote&gt;&lt;blockquote&gt;&lt;a name=&quot;intro&quot;&gt;&lt;b&gt;&lt;span class=&quot;atitle&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Introduction&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;p&gt;With its massive .NET framework, Microsoft® introduced a new data access technology called ADO.NET. In this article, we will examine how to use the ADO.NET driver for Informix that is included with the IBM Client SDK version 2.90. The sample code included is written in C#.&lt;/p&gt;&lt;table class=&quot;no-print&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; align=&quot;right&quot;&gt;&lt;tbody&gt;&lt;tr align=&quot;right&quot;&gt;&lt;td&gt;&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;a name=&quot;groundwork&quot;&gt;&lt;b&gt;&lt;span class=&quot;atitle&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Laying the groundwork&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Before using the ADO.NET driver, you should make sure it is installed and working properly. The current version of the driver is installed with the Informix Client Software Developer&apos;s Kit (SDK) 2.90. Unlike the previous 2.81 version, this SDK installation includes the ADO.NET driver by default. As you might expect, the client machine must have the .NET framework installed in order to use the driver. The SDK install program will warn you about this, too. It does not seem to actually look for the .NET framework, it just warns you that it needs to already be installed. If you have the 2.81 SDK already installed, it is best to uninstall it first. The two versions do not co-exist well. Be aware that the 2.90 ADO.NET driver incorrectly reports itself as version 2.81 when you add it into your Visual Studio Projects.&lt;/p&gt;&lt;p&gt;The 2.90 version is a significant upgrade over the 2.81 version. It includes a new IfxDataAdapter wizard, IPv6 support, and new classes for Informix data types (IfxDateTime, IfxDecimal, IfxBlob, and IfxClob). The documentation is more complete with twice the amount of material.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Important:&lt;/b&gt; The IBM Informix ADO.Net driver is not self-contained in the IBM.Data.Informix.dll file that gets installed in the /bin directory of your installation. Apparently, it uses some of the other client code installed by the SDK. This means that you must install the Informix Client SDK on any machines that will use the ADO.Net driver. You cannot just include the IBM.Data.Informix.dll in your distribution. This could be a serious limitation for some applications. You also need to go through the SDK setup (SetNet32) to define your Informix data sources.&lt;/p&gt;&lt;p&gt;Before using the ADO.NET driver to connect, you must also run a stored procedure called cdotnet.sql. It is located in the /etc directory of your SDK installation. This is similar to the process of setting up the OLEDB driver, though the procedure is much shorter. This process is documented in the User&apos;s Guide. (See the &lt;a href=&quot;http://www.ibm.com/developerworks/data/library/techarticle/dm-0510durity/#resources&quot; cmimpressionsent=&quot;1&quot; target=&quot;_blank&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0000ff&quot;&gt;Resources&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; section below.)&lt;/p&gt;&lt;p&gt;After installation, check your driver and make sure you get a connection. To use the ADO.NET driver in your Visual Studio project, make sure you add a reference to the IBM.Data.Informix.dll found in the /bin directory of your client SDK installation. The proper &lt;code&gt;using&lt;/code&gt; statement is: &lt;code&gt;using IBM.Data.Informix&lt;/code&gt;. Here is a simple method that demonstrates how to get a connection to the database:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;N1008D&quot;&gt;&lt;b&gt;&lt;font color=&quot;#000000&quot;&gt;Listing 1. Connecting to an Informix database&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;MakeConnection()&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;&amp;nbsp;ConnectionString&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Host=&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+&amp;nbsp;HOST&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;;&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Service=&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+&amp;nbsp;SERVICENUM&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;;&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Server=&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+&amp;nbsp;SERVER&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;;&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Database=&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+&amp;nbsp;DATABASE&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;;&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;User&amp;nbsp;Id=&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+&amp;nbsp;USER&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;;&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Password=&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+&amp;nbsp;PASSWORD&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;;&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//Can&amp;nbsp;add&amp;nbsp;other&amp;nbsp;DB&amp;nbsp;parameters&amp;nbsp;here&amp;nbsp;like&amp;nbsp;DELIMIDENT,&amp;nbsp;DB_LOCALE&amp;nbsp;etc &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//Full&amp;nbsp;list&amp;nbsp;in&amp;nbsp;Client&amp;nbsp;SDK&apos;s&amp;nbsp;.Net&amp;nbsp;Provider&amp;nbsp;Reference&amp;nbsp;Guide&amp;nbsp;p&amp;nbsp;3:13 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IfxConnection&amp;nbsp;conn&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;IfxConnection();&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;conn.ConnectionString&amp;nbsp;=&amp;nbsp;ConnectionString; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;try&lt;/span&gt;&lt;span&gt;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;conn.Open(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Made&amp;nbsp;connection!&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.ReadLine(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;catch&lt;/span&gt;&lt;span&gt;&amp;nbsp;(IfxException&amp;nbsp;ex)&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Problem&amp;nbsp;with&amp;nbsp;connection&amp;nbsp;attempt:&amp;nbsp;&amp;quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+&amp;nbsp;ex.Message);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;The sample code includes a &lt;code&gt;BasicConnection&lt;/code&gt; class for this functionality. As you can see, the &lt;code&gt;ConnectionString&lt;/code&gt; is just a semicolon-separated list of parameters for the connection. The &lt;code&gt;Open()&lt;/code&gt; method opens the connection to the database and throws an &lt;code&gt;IfxException&lt;/code&gt; if the connection fails. The &lt;code&gt;IfxException.Message&lt;/code&gt; property usually gives a reasonable amount of detail on the reason for the failure.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;basics&quot;&gt;&lt;b&gt;&lt;span class=&quot;atitle&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Basic commands&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Once you have a connection, you can begin to execute commands against the database. To do this, use an &lt;code&gt;IfxCommand&lt;/code&gt; object. The constructor for an &lt;code&gt;IfxCommand&lt;/code&gt; takes a string (the SQL command text) and an &lt;code&gt;IfxConnection&lt;/code&gt;. The &lt;code&gt;IfxCommand&lt;/code&gt; object has a series of &lt;code&gt;Execute&lt;/code&gt; methods to execute the command against the database. To clean up, use the &lt;code&gt;IfxConnection.Close()&lt;/code&gt; method. Here is an example of executing a simple command that doesn&apos;t return a set of results. It could be an insert, update, or delete.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;N100CF&quot;&gt;&lt;b&gt;&lt;font color=&quot;#000000&quot;&gt;Listing 2. Executing an insert, update or delete&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;IfxCommand&amp;nbsp;cmd; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;cmd&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;IfxCommand(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;insert&amp;nbsp;into&amp;nbsp;test&amp;nbsp;values&amp;nbsp;(1,&amp;nbsp;2,&amp;nbsp;&apos;ABC&apos;)&amp;quot;&lt;/span&gt;&lt;span&gt;,conn); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;cmd.CommandTimeout&amp;nbsp;=&amp;nbsp;200;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//seconds&amp;nbsp;to&amp;nbsp;wait&amp;nbsp;for&amp;nbsp;command&amp;nbsp;to&amp;nbsp;finish&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;try&lt;/span&gt;&lt;span&gt;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt;&lt;span&gt;&amp;nbsp;rows&amp;nbsp;=&amp;nbsp;cmd.ExecuteNonQuery(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;catch&lt;/span&gt;&lt;span&gt;&amp;nbsp;(IfxException&amp;nbsp;ex)&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Error&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;+ex.Message); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;code&gt;ExecuteNonQuery&lt;/code&gt; returns, as an integer, the number of rows affected by the command. You can also build parameterized statements and queries, which we will also examine below. Notice the &lt;code&gt;CommandTimeout&lt;/code&gt; property of the &lt;code&gt;IfxCommand&lt;/code&gt;. The default timeout is 30 seconds, although it is undocumented. Unless you change this property, a command that runs for over 30 seconds will time out and throw an exception.&lt;/p&gt;&lt;p&gt;The next example is executing a select statement and working with the set of results returned by the database server. For a fast, forward-only cursor through the results, use an &lt;code&gt;IfxDataReader&lt;/code&gt; returned by the &lt;code&gt;ExecuteReader&lt;/code&gt; method. However, you can only have one open &lt;code&gt;IfxDataReader&lt;/code&gt; per &lt;code&gt;IfxConnection&lt;/code&gt;. (This is an ADO.NET limitation, not a specific limitation of the Informix ADO.NET driver.)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;N100FD&quot;&gt;&lt;b&gt;&lt;font color=&quot;#000000&quot;&gt;Listing 3. Iterating through an IfxDataReader&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;IfxCommand&amp;nbsp;cmd&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;IfxCommand(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;test&amp;quot;&lt;/span&gt;&lt;span&gt;,bconn.conn);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;try&lt;/span&gt;&lt;span&gt;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IfxDataReader&amp;nbsp;dr&amp;nbsp;=&amp;nbsp;cmd.ExecuteReader(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;while&lt;/span&gt;&lt;span&gt;&amp;nbsp;(dr.Read())&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt;&lt;span&gt;&amp;nbsp;a&amp;nbsp;=&amp;nbsp;dr.GetInt32(0); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt;&lt;span&gt;&amp;nbsp;b&amp;nbsp;=&amp;nbsp;Convert.ToInt32(dr[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;b&amp;quot;&lt;/span&gt;&lt;span&gt;]); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;&amp;nbsp;c&amp;nbsp;=&amp;nbsp;(String)dr[2]; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dr.Close(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;catch&lt;/span&gt;&lt;span&gt;&amp;nbsp;(IfxException&amp;nbsp;ex)&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Error&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;+ex.Message); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;Each column is retrieved as a generic Object type. As the code demonstrates, there are several ways to convert the column Objects into the correct datatypes. You can use the &lt;code&gt;Get&lt;i&gt;Xxx&lt;/i&gt;&lt;/code&gt; methods of the &lt;code&gt;IfxDataReader&lt;/code&gt;. There are methods for almost every datatype. The &lt;code&gt;Get&lt;i&gt;Xxx&lt;/i&gt;&lt;/code&gt; methods take a column number as a parameter. You can use the indexers of the &lt;code&gt;IfxDataReader&lt;/code&gt; to access the columns by their names. The .NET framework &lt;code&gt;Convert&lt;/code&gt; functions will convert these Objects into the proper types, if possible. Finally, you can index into the columns by column number and cast the results directly (for some types).&lt;/p&gt;&lt;p&gt;This next example shows how to call a stored procedure that needs a parameter value.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;N10125&quot;&gt;&lt;b&gt;&lt;font color=&quot;#000000&quot;&gt;Listing 4. Executing a stored procedure with a parameter&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;IfxCommand&amp;nbsp;cmd&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;IfxCommand(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;test_proc&amp;quot;&lt;/span&gt;&lt;span&gt;,conn);&amp;nbsp;&amp;nbsp;cmd.CommandType&amp;nbsp;=&amp;nbsp;CommandType.StoredProcedure;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//from&amp;nbsp;System.Data &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;cmd.Parameters.Add(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;in_parameter&amp;quot;&lt;/span&gt;&lt;span&gt;,2);&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//many&amp;nbsp;ways&amp;nbsp;to&amp;nbsp;create&amp;nbsp;these &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;try&lt;/span&gt;&lt;span&gt;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.ExecuteScalar(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;catch&lt;/span&gt;&lt;span&gt;&amp;nbsp;(IfxException&amp;nbsp;ifxe)&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Error&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;+ifxe.Message); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;For this &lt;code&gt;IfxCommand&lt;/code&gt;, you must set the &lt;code&gt;CommandType&lt;/code&gt; to the &lt;code&gt;StoredProcedure&lt;/code&gt; value from the &lt;code&gt;CommandType&lt;/code&gt; enum in &lt;code&gt;System.Data&lt;/code&gt;. To create the parameter, you can use the &lt;code&gt;IfxCommand&lt;/code&gt;&apos;s &lt;code&gt;Parameters.Add&lt;/code&gt; method. &lt;code&gt;IfxCommands.Parameters&lt;/code&gt; is a collection, so you can add as many parameters as you need. You can create the parameters with any of the &lt;code&gt;IfxParameter()&lt;/code&gt; constructors, or you can shortcut their creation as above. Note, however, that each &lt;code&gt;IfxParameter&lt;/code&gt; is associated with a specific &lt;code&gt;IfxCommand&lt;/code&gt;. You cannot create &lt;code&gt;IfxParameters&lt;/code&gt; and then use them in multiple &lt;code&gt;IfxCommand&lt;/code&gt; objects. The &lt;code&gt;ExecuteScalar()&lt;/code&gt; method returns only 1 row. This example does not return anything back from the stored procedure.&lt;/p&gt;&lt;p&gt;To build a parameterized SQL statement that doesn&apos;t execute a stored procedure, insert question marks as place-holders in the &lt;code&gt;CommandText&lt;/code&gt;. For example:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;N10171&quot;&gt;&lt;b&gt;&lt;font color=&quot;#000000&quot;&gt;Listing 5. Parameterized query&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;IfxCommand&amp;nbsp;insCmd&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;IfxCommand(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;insert&amp;nbsp;into&amp;nbsp;clientstest&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;(clientcode,&amp;nbsp;clientacctname,&amp;nbsp;primarycontact,&amp;nbsp;primaddrcode,&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;initialamt,createdate)&amp;nbsp;values&amp;nbsp;(0,?,?,?,?,TODAY)&amp;quot;&lt;/span&gt;&lt;span&gt;,conn);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;Add &lt;code&gt;IfxParameter&lt;/code&gt; objects to the &lt;code&gt;IfxCommand&lt;/code&gt;&apos;s &lt;code&gt;Parameters&lt;/code&gt; collection in the exact order as they occur in the command text. This technique is further demonstrated in the final strongly typed &lt;code&gt;DataSets&lt;/code&gt; in the extended example below.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;datasets&quot;&gt;&lt;b&gt;&lt;span class=&quot;atitle&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Strongly typed DataSets&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;ADO.NET includes a specialized database object called a &lt;code&gt;DataSet&lt;/code&gt;. It is an in-memory database. The &lt;code&gt;DataSet&lt;/code&gt; consists of one or more &lt;code&gt;DataTable&lt;/code&gt; objects (made up of &lt;code&gt;DataRow&lt;/code&gt; objects). The &lt;code&gt;DataTable&lt;/code&gt;s can be related by primary and foreign keys. And constraints can be placed on the data. The &lt;code&gt;DataSet&lt;/code&gt; is also disconnected from the actual data store. It gets filled through one or more &lt;code&gt;DataAdapter&lt;/code&gt;s (one per &lt;code&gt;DataTable&lt;/code&gt;), and then keeps that data and any changes in memory. At a later point, the &lt;code&gt;DataAdapter&lt;/code&gt;s can submit changes back to the data store.&lt;/p&gt;&lt;p&gt;The basic &lt;code&gt;DataSet&lt;/code&gt; is not strongly typed. It does not know what the real columns and rows of the database are. Columns can be indexed by name: &lt;code&gt;row[&amp;quot;itemcode&amp;quot;]&lt;/code&gt;. But compliler does not check these column names. Any mistake in the column name, for example, is not apparent until runtime. Also, the developer has no help remembering if the column is &amp;quot;itemcode&amp;quot; or &amp;quot;itemid.&amp;quot;&lt;/p&gt;&lt;p&gt;A strongly typed &lt;code&gt;DataSet&lt;/code&gt; addresses these problems. Instead of a generic &lt;code&gt;DataRow&lt;/code&gt;, it would have, for example, an &lt;code&gt;OrderDetailDataRow&lt;/code&gt; as part of an &lt;code&gt;OrderDetailDataTable&lt;/code&gt;. And you could refer to columns as actual properties of the &lt;code&gt;OrderDetailDataRow&lt;/code&gt; (&lt;code&gt;row.ItemCode&lt;/code&gt;). This way you also get the productivity benefits of Intellisense. The table and column names also become available in the property editors to enhance designer-level tools like data binding.&lt;/p&gt;&lt;p&gt;So how can you build this productivity-enhancing, strongly typed &lt;code&gt;DataSet&lt;/code&gt;? Will it take so much time or effort to build that you don&apos;t experience any net productivity gain? The Informix ADO.NET driver may not be as sophisticated as some other drivers. The Microsoft &lt;code&gt;SQLDataAdapter&lt;/code&gt; (for SQL Server) includes a Generate DataSet wizard. The &lt;code&gt;IfxDataAdapter&lt;/code&gt; doesn&apos;t have this wizard yet. However, you can build some tools to help you. You can also use some tools already built into the .NET framework. In the end, you will have a descendent of a strongly typed &lt;code&gt;DataSet&lt;/code&gt; that encapsulates all of the database interaction.&lt;/p&gt;&lt;p&gt;The .NET framework includes an XSD compiler (xsd.exe) that can generate a strongly typed &lt;code&gt;DataSet&lt;/code&gt; from a specially formatted .xsd file. But who wants to type in a bunch of XML? Fortunately, the &lt;code&gt;DataSet&lt;/code&gt; object includes a method called &lt;code&gt;WriteXmlSchema()&lt;/code&gt;. This method allows you to use a non-typed &lt;code&gt;DataSet&lt;/code&gt; to create the XSD file for a strongly-typed &lt;code&gt;DataSet&lt;/code&gt;. Let&apos;s look at how this works. Here is a simple table:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;N1020B&quot;&gt;&lt;b&gt;&lt;font color=&quot;#000000&quot;&gt;Listing 6. Clientstest table&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-sql&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;CREATE&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;TABLE&lt;/span&gt;&lt;span&gt;&amp;nbsp;clientstest&amp;nbsp;( &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientcode&amp;nbsp;SERIAL&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;op&quot;&gt;not&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;op&quot;&gt;null&lt;/span&gt;&lt;span&gt;, &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clientacctname&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;CHAR&lt;/span&gt;&lt;span&gt;(60)&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;op&quot;&gt;not&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;op&quot;&gt;null&lt;/span&gt;&lt;span&gt;, &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;primarycontact&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;CHAR&lt;/span&gt;&lt;span&gt;(30)&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;op&quot;&gt;not&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;op&quot;&gt;null&lt;/span&gt;&lt;span&gt;, &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;primaddrcode&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;CHAR&lt;/span&gt;&lt;span&gt;(10), &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;createdate&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;DATE&lt;/span&gt;&lt;span&gt;, &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;initialamt&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;DECIMAL&lt;/span&gt;&lt;span&gt;&amp;nbsp;(18,0) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;Here&apos;s the single-table DataSet for that table:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;N10218&quot;&gt;&lt;b&gt;&lt;font color=&quot;#000000&quot;&gt;Listing 7. Defining the DataSet&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;DS&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;DataSet(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;dsClients&amp;quot;&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//main&amp;nbsp;table&amp;nbsp;definition &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataTable&amp;nbsp;mainTable&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;DataTable(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;clients&amp;quot;&lt;/span&gt;&lt;span&gt;); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataColumnCollection&amp;nbsp;cols&amp;nbsp;=&amp;nbsp;mainTable.Columns; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataColumn&amp;nbsp;column&amp;nbsp;=&amp;nbsp;cols.Add(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;clientcode&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;typeof&lt;/span&gt;&lt;span&gt;(Int32)); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;column.AllowDBNull&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;false&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cols.Add(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;clientacctname&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;typeof&lt;/span&gt;&lt;span&gt;(String)).MaxLength&amp;nbsp;=&amp;nbsp;60; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cols.Add(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;primarycontact&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;typeof&lt;/span&gt;&lt;span&gt;(String)).MaxLength&amp;nbsp;=&amp;nbsp;30; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cols.Add(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;primaddrcode&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;typeof&lt;/span&gt;&lt;span&gt;(String)).MaxLength&amp;nbsp;=&amp;nbsp;10; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cols.Add(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;initialamt&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;typeof&lt;/span&gt;&lt;span&gt;(Decimal)); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cols.Add(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;createdate&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;typeof&lt;/span&gt;&lt;span&gt;(System.DateTime));&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//primary&amp;nbsp;key&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mainTable.PrimaryKey&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;DataColumn[]&amp;nbsp;{cols[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;clientcode&amp;quot;&lt;/span&gt;&lt;span&gt;]};&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//add&amp;nbsp;table&amp;nbsp;to&amp;nbsp;DataSet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DS.Tables.Add(mainTable);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//Write&amp;nbsp;schema&amp;nbsp;to&amp;nbsp;file &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;DS.WriteXmlSchema(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;dsClients.xsd&amp;quot;&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;In this definition, you set the types and the constraints on the data. You also set the names for the columns. They do not have to match the database&apos;s column names. Look in the code files in the &lt;a href=&quot;http://www.ibm.com/developerworks/data/library/techarticle/dm-0510durity/#download&quot; cmimpressionsent=&quot;1&quot; target=&quot;_blank&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0000ff&quot;&gt;Download&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; section of this article to see the resulting dsClients.xsd file.&lt;/p&gt;&lt;p&gt;To make it easier to generate the XSD file (and re-generate it, after changes), build a framework for these &lt;code&gt;DataSet&lt;/code&gt; Builders. (All the code required for this is included below.) Since you want the framework to determine which Builders to build, use reflection to dynamically determine if something is a &lt;code&gt;DataSetBuilder&lt;/code&gt;. Start by writing the &lt;code&gt;IBuildable&lt;/code&gt; interface. It defines the properties and methods that our &lt;code&gt;DataSetBuilder&lt;/code&gt;s must implement.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;N1023C&quot;&gt;&lt;b&gt;&lt;font color=&quot;#000000&quot;&gt;Listing 8. IBuildable interface&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;interface&lt;/span&gt;&lt;span&gt;&amp;nbsp;IBuildable&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;&amp;nbsp;FileName&amp;nbsp;{&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;get&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;set&lt;/span&gt;&lt;span&gt;;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;&amp;nbsp;FilePath&amp;nbsp;{&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;get&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;set&lt;/span&gt;&lt;span&gt;;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Logger&amp;nbsp;Log&amp;nbsp;{&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;get&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;set&lt;/span&gt;&lt;span&gt;;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataSet&amp;nbsp;DS&amp;nbsp;{&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;get&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;set&lt;/span&gt;&lt;span&gt;;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;BuildXSD(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;CompileXSD(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;string&lt;/span&gt;&lt;span&gt;&amp;nbsp;outputDirectory); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;The code from listing 7 (the definition of the &lt;code&gt;DataSet&lt;/code&gt;) is basically the &lt;code&gt;BuildXSD()&lt;/code&gt; method. Create an abstract parent class called &lt;code&gt;DataSetBuilder&lt;/code&gt;. &lt;code&gt;BuildXSD&lt;/code&gt; is the abstract method that must be overriden in each concrete descendent. The &lt;code&gt;CompileXSD&lt;/code&gt; method is the same for each &lt;code&gt;DataSetBuilder&lt;/code&gt;, so it resides in the &lt;code&gt;DataSetBuilder&lt;/code&gt;. Here is the &lt;code&gt;CompileXSD()&lt;/code&gt; method from that abstract class:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;N10269&quot;&gt;&lt;b&gt;&lt;font color=&quot;#000000&quot;&gt;Listing 9. CompileXSD() method&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;log.LogStatus(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Compiling&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;+filename); &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ProcessStartInfo&amp;nbsp;processinfo&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;ProcessStartInfo(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;processinfo.FileName&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;C:\Program&amp;nbsp;Files\Microsoft&amp;nbsp;Visual&amp;nbsp;Studio&amp;nbsp;.NET&amp;nbsp;2003\&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;+@&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;SDK\v1.1\Bin\xsd.exe&amp;quot;&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;processinfo.Arguments&amp;nbsp;=&amp;nbsp;FilePath+FileName+&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;&amp;nbsp;/dataset&amp;nbsp;/namespace:&amp;quot;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;+ds.Namespace+&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;&amp;nbsp;/out:&amp;quot;&lt;/span&gt;&lt;span&gt;+outputDirectory;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;processinfo.UseShellExecute&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;false&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;processinfo.RedirectStandardInput&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;processinfo.RedirectStandardOutput&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;processinfo.RedirectStandardError&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;processinfo.CreateNoWindow&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//doesn&apos;t&amp;nbsp;work&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;comment&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #000000&quot;&gt;processinfo.WindowStyle&amp;nbsp;=&amp;nbsp;ProcessWindowStyle.Hidden;&lt;/span&gt;&amp;nbsp;//doesn&apos;t&amp;nbsp;work &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;Process&amp;nbsp;compiler&amp;nbsp;=&amp;nbsp;Process.Start(processinfo);&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;log.LogStatus(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Output:\n&amp;quot;&lt;/span&gt;&lt;span&gt;+compiler.StandardOutput.ReadToEnd()); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;log.LogStatus(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Error:\n&amp;quot;&lt;/span&gt;&lt;span&gt;+compiler.StandardError.ReadToEnd()); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;compiler.WaitForExit();&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;This method uses the &lt;code&gt;Process&lt;/code&gt; and &lt;code&gt;ProcessStartInfo&lt;/code&gt; classes from &lt;code&gt;System.Diagnostics&lt;/code&gt; in the .NET framework to execute the XSD compiler. This example code uses the free and relatively simple .NET Logging Framework from the ObjectGuy (see &lt;a href=&quot;http://www.ibm.com/developerworks/data/library/techarticle/dm-0510durity/#resources&quot; cmimpressionsent=&quot;1&quot; target=&quot;_blank&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0000ff&quot;&gt;Resources&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Because the &lt;code&gt;DataSetBuilder&lt;/code&gt; classes all implement the &lt;code&gt;IBuildable&lt;/code&gt; interface, we can use reflection to look through the assembly and build all the &lt;code&gt;DataSet&lt;/code&gt; classes from the &lt;code&gt;DataSetBuilders&lt;/code&gt;. This is what the &lt;code&gt;DataLibraryBuilder&lt;/code&gt; class does. For example, the &lt;code&gt;ClientsBuilder&lt;/code&gt; gets compiled to a &lt;code&gt;dsClients&lt;/code&gt; class.&lt;/p&gt;&lt;p&gt;The generated &lt;code&gt;dsClients&lt;/code&gt; class is the strongly-typed &lt;code&gt;DataSet&lt;/code&gt;. From the 42-line &lt;code&gt;ClientsBuilder&lt;/code&gt;, we now have almost 500 lines of strongly typed code. Look at this generated code. It contains a &lt;code&gt;clientsDataTable&lt;/code&gt;. The &lt;code&gt;clientsDataTable&lt;/code&gt; has properties for each column. There are also methods like: &lt;code&gt;NewclientsRow()&lt;/code&gt;, &lt;code&gt;IsinitialamtNull()&lt;/code&gt;, and &lt;code&gt;FindByclientcode(int clientcode)&lt;/code&gt;. These will be quite useful when using this class.&lt;/p&gt;&lt;p&gt;To encapsulate the Informix database access into the strongly typed &lt;code&gt;DataSet&lt;/code&gt;, inherit from &lt;code&gt;dsClients&lt;/code&gt;. This is the &lt;code&gt;Clients&lt;/code&gt; class that you can use in your application. Inheritance provides some protection from changes in the schema of the &lt;code&gt;DataSet&lt;/code&gt;. If the schema changes, you can just regenerate the &lt;code&gt;dsClients&lt;/code&gt; class. The &lt;code&gt;Clients&lt;/code&gt; class remains unchanged (though you may need to make changes there, too). In the &lt;code&gt;Clients&lt;/code&gt; class, add an &lt;code&gt;IfxDataAdapter&lt;/code&gt; for each &lt;code&gt;DataTable&lt;/code&gt; (just one in this case). For each &lt;code&gt;IfxDataAdapter&lt;/code&gt;, define the SQL text and parameters for the select, insert, update, and delete commands. You can then override the &lt;code&gt;Fill&lt;/code&gt; and &lt;code&gt;Update&lt;/code&gt; methods to initialize, fill, and update all the &lt;code&gt;IfxDataAdpaters&lt;/code&gt;. Look at the Insert Command as an example:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;N102FF&quot;&gt;&lt;b&gt;&lt;font color=&quot;#000000&quot;&gt;Listing 10. InsertCommand for the IfxDataAdapter&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;IfxCommand&amp;nbsp;insCmd&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;IfxCommand(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;insert&amp;nbsp;into&amp;nbsp;clientstest&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;+&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;(clientcode,&amp;nbsp;clientacctname,&amp;nbsp;primarycontact,&amp;nbsp;primaddrcode,&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;+&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;initialamt,createdate)&amp;nbsp;values&amp;nbsp;(0,?,?,?,?,TODAY)&amp;quot;&lt;/span&gt;&lt;span&gt;,conn); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;insCmd.Parameters.Add(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;clientacctname&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;IfxType.Char,60, &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;clientacctname&amp;quot;&lt;/span&gt;&lt;span&gt;); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;insCmd.Parameters.Add(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;primarycontact&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;IfxType.Char,&amp;nbsp;30, &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;primarycontact&amp;quot;&lt;/span&gt;&lt;span&gt;); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;insCmd.Parameters.Add(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;primaddrcode&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;IfxType.Char,&amp;nbsp;10, &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;primaddrcode&amp;quot;&lt;/span&gt;&lt;span&gt;); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;insCmd.Parameters.Add(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;initialamt&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;IfxType.Decimal,&amp;nbsp;16, &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;initialamt&amp;quot;&lt;/span&gt;&lt;span&gt;); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;daclients.InsertCommand&amp;nbsp;=&amp;nbsp;insCmd;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;The &lt;code&gt;IfxDataAdapter&lt;/code&gt; has the following command properties: &lt;code&gt;SelectCommand&lt;/code&gt;, &lt;code&gt;InsertCommand&lt;/code&gt;, &lt;code&gt;DeleteCommand&lt;/code&gt;, and &lt;code&gt;UpdateCommand&lt;/code&gt;. When the &lt;code&gt;IfxDataAdapter&lt;/code&gt; executes the &lt;code&gt;Fill()&lt;/code&gt; method, it uses the &lt;code&gt;SelectCommand&lt;/code&gt; to query the database. When the &lt;code&gt;Update()&lt;/code&gt; method is called, the &lt;code&gt;IfxDataAdapter&lt;/code&gt; uses a combination of the Insert, Update, and Delete commands to conform the database to the in-memory version of the table. The &lt;code&gt;IfxDataAdapter&lt;/code&gt; decides which rows and columns need to be changed; the developer does not have to code to track the changes to the data.&lt;/p&gt;&lt;p&gt;Notice that zero is inserted into the serial value, as is usual for the Informix serial type. But how can you get the database-generated value back into your disconnected &lt;code&gt;DataSet&lt;/code&gt;? You have to hook into the &lt;code&gt;RowUpdated&lt;/code&gt; event of the &lt;code&gt;dsclients&lt;/code&gt;&lt;code&gt;IfxDataAdapter&lt;/code&gt;. In that event handler, the code looks for any inserts. For an insert, it executes a dbinfo command to retrieve the just-created serial value. It puts that value into the clientcode column for that &lt;code&gt;DataRow&lt;/code&gt;. Here&apos;s the event handler code for this Informix-specific trick:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;N1034F&quot;&gt;&lt;b&gt;&lt;font color=&quot;#000000&quot;&gt;Listing 11. Retrieving the generated serial value&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;private&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;daclients_RowUpdated(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;object&lt;/span&gt;&lt;span&gt;&amp;nbsp;sender,&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IfxRowUpdatedEventArgs&amp;nbsp;e)&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//For&amp;nbsp;INSERTs&amp;nbsp;only,&amp;nbsp;gets&amp;nbsp;the&amp;nbsp;serial&amp;nbsp;id&amp;nbsp;and &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//inserts&amp;nbsp;into&amp;nbsp;the&amp;nbsp;clientcode &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;&amp;nbsp;(e.StatementType&amp;nbsp;==&amp;nbsp;StatementType.Insert)&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IfxCommand&amp;nbsp;getSerial&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;IfxCommand( &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;select&amp;nbsp;dbinfo(&apos;sqlca.sqlerrd1&apos;)&amp;nbsp;from&amp;nbsp;systables&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;+&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;where&amp;nbsp;tabid&amp;nbsp;=&amp;nbsp;1&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;daclients.InsertCommand.Connection); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.Row[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;clientcode&amp;quot;&lt;/span&gt;&lt;span&gt;]&amp;nbsp;=&amp;nbsp;(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt;&lt;span&gt;)getSerial.ExecuteScalar(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;a name=&quot;results&quot;&gt;&lt;b&gt;&lt;span class=&quot;atitle&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Results&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;You now have a fully encapsulated business object that handles its own database interaction. What can you do now? Since &lt;code&gt;DataSet&lt;/code&gt;s derive from &lt;code&gt;System.Component&lt;/code&gt;, you can add your strongly typed &lt;code&gt;DataSet&lt;/code&gt; objects (for example, &lt;code&gt;Client&lt;/code&gt;s) onto your Visual Studio Toolbox. Then you can drag it out onto any WinForm or WebForm design view. Set the property for the Connection. In your code, execute the object&apos;s &lt;code&gt;Fill()&lt;/code&gt; method (perhaps in a &lt;code&gt;FormLoad&lt;/code&gt; event). That fills the object with all the data for each &lt;code&gt;DataTable&lt;/code&gt;. In the Designer view, you can also databind by setting the &lt;code&gt;DataSource&lt;/code&gt; (and perhaps the &lt;code&gt;DataMember&lt;/code&gt; property) for the visual control or grid.&lt;/p&gt;&lt;p&gt;The LibraryConsoleTest program in the sample solution demonstrates how the strongly typed &lt;code&gt;DataSet&lt;/code&gt; works. You can now write something like this: &lt;code&gt;Console.WriteLine(client.clientcode + &amp;quot; &amp;quot; + client.clientacctname+&amp;quot; &amp;quot; + client.createdate);&lt;/code&gt; instead of this: &lt;code&gt;Console.WriteLine(ds.Tables[&amp;quot;clients&amp;quot;].Rows[&amp;quot;clientcode&amp;quot;] + &amp;quot; &amp;quot; + ds.Tables[&amp;quot;clients&amp;quot;].Rows[&amp;quot;clientacctname&amp;quot;] + &amp;quot; &amp;quot; + ds.Tables[&amp;quot;clients&amp;quot;].Rows [&amp;quot;createdate&amp;quot;] );&lt;/code&gt; The LibraryConsoleTest adds a new client and retrieves the generated serial number. It deletes a client after using the &lt;code&gt;Findbyclientcode()&lt;/code&gt; method to select the proper row. It also updates one column in a particular row. Finally it loops through the clients and prints the data to the Console. The sample solution also includes a quick Windows Forms application (WinFormsApp) that demonstrates databinding use a DataGrid.&lt;/p&gt;&lt;p&gt;Data access is constant need for most business applications. Yet, the models and methods for doing data access are continually changing. The examples in this article should help you get&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/Connect-to-Informix-with-ADO-DOT-NET.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/96/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/Connect-to-Informix-with-ADO-DOT-NET.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/96/Feeds.ashx</wfw:commentRss>
	</item>
	<item>
		<link>http://www.517sou.net/Article/73.aspx</link>
		<title>.NET平台下Web树形结构程序设计</title>
		<author>shanyiwan@live.com()</author>
		<category>DotNet专栏</category>
		<pubDate>Sun, 21 Jun 2009 12:51:26 GMT</pubDate>
		<description>&lt;p&gt;&lt;strong&gt;概述&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;TreeView是一个重要的控件，无论是在VB.NET，C#&amp;nbsp;还是VB、Delphi等各种语言中，都充当了导航器的作用。在实际工作中，很多情况下需要将TreeView与数据库进行连接，以填充其节点。在Windows&amp;nbsp;Form和Web&amp;nbsp;Form中，我们可以用TreeView来显示树形结构，如显示目录树、显示地区、分类显示商品等。可以说，在大部分软件的开发中，TreeView都是一个不可缺少的展示控件。因此，树形结构的设计就成了软件开发人员一个永恒的话题。&lt;br /&gt;树形结构的展示方式&lt;br /&gt;树形结构的展示一般来讲有三种方式：&lt;br /&gt;1.界面设计时在TreeView设计器或者代码中直接填充TreeView控件。&lt;br /&gt;2.从XML文件中建立树形结构。&lt;br /&gt;3.从数据库中得到数据，建立树形结构。&lt;br /&gt;第一种方式是最简单的，这种方式主要用于树形结构一般没有变化的应用程序，在设计时就固定一颗树。当然，在设计时固定了树的结构，以后要想修改、增加、删除树的节点，就必须修改源程序。所有不利于扩展。&lt;br /&gt;第二种方式从XML文件中提取，由于XML本身就是树形结构的，微软提供的文档对象模型DOM&amp;nbsp;可以方便的读取、操作和修改&amp;nbsp;XML&amp;nbsp;文档。在.NET中，应用System.Xml类可以方便地将XML文件加载到TreeView控件中，微软的MSDN也提供了实例，此处就不再多说。&lt;br /&gt;第三种方式，树形结构的数据，从数据库中获得。一般来讲，我们的应用程序多数是基于数据库的。采用这种方式，增加、修改、删除一颗树的节点很方便，只要操作数据库中的数据就可以了。而且，这种方式可以和数据库中的其它表做关联、查询和汇总，通过设计视图或存储过程，很容易查询出你想要的相关数据。下面，我们主要讨论这种方式的设计和实现。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;数据库设计&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;首先，我们在SQL&amp;nbsp;SERVER&amp;nbsp;2000里建立一个表tbTree，表的结构设计如下：&lt;br /&gt;列名&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;数据类型&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;描述&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;长度&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;主键&lt;br /&gt;ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Int&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;节点编号&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;是&lt;br /&gt;ParentID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Int&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;父节点编号&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;ConText&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Nvarchar&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;我们要显示的节点内容&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;50&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;在SQL&amp;nbsp;SERVER&amp;nbsp;2000中建表的脚本：&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-sql&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;CREATE&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;TABLE&lt;/span&gt;&lt;span&gt;&amp;nbsp;[dbo].[tbTree]&amp;nbsp;( &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[ID]&amp;nbsp;[&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt;&lt;span&gt;]&amp;nbsp;IDENTITY&amp;nbsp;(1,&amp;nbsp;1)&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;op&quot;&gt;NOT&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;op&quot;&gt;NULL&lt;/span&gt;&lt;span&gt;&amp;nbsp;, &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Context]&amp;nbsp;[nvarchar]&amp;nbsp;(50)&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;COLLATE&lt;/span&gt;&lt;span&gt;&amp;nbsp;Chinese_PRC_CI_AS&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;op&quot;&gt;NULL&lt;/span&gt;&lt;span&gt;&amp;nbsp;, &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[ParentID]&amp;nbsp;[&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt;&lt;span&gt;]&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;op&quot;&gt;NULL&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;)&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;ON&lt;/span&gt;&lt;span&gt;&amp;nbsp;[&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;PRIMARY&lt;/span&gt;&lt;span&gt;]&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;在表中添加如下记录：&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-sql&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;SET&lt;/span&gt;&lt;span&gt;&amp;nbsp;IDENTITY_INSERT&amp;nbsp;tbtree&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;ON&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;1,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;中国&apos;&lt;/span&gt;&lt;span&gt;,0) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;2,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;北京&apos;&lt;/span&gt;&lt;span&gt;,11) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;3,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;天津&apos;&lt;/span&gt;&lt;span&gt;,11) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;4,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;河北省&apos;&lt;/span&gt;&lt;span&gt;,1) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;5,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;广东省&apos;&lt;/span&gt;&lt;span&gt;,1) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;6,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;广州&apos;&lt;/span&gt;&lt;span&gt;,5) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;7,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;四川省&apos;&lt;/span&gt;&lt;span&gt;,1) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;8,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;成都&apos;&lt;/span&gt;&lt;span&gt;,7) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;9,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;深圳&apos;&lt;/span&gt;&lt;span&gt;,5) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;10,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;石家庄&apos;&lt;/span&gt;&lt;span&gt;,4) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;11,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;辽宁省&apos;&lt;/span&gt;&lt;span&gt;,1) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;12,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;大连&apos;&lt;/span&gt;&lt;span&gt;,11) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;13,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;上海&apos;&lt;/span&gt;&lt;span&gt;,1) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;14,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;天河软件园&apos;&lt;/span&gt;&lt;span&gt;,6) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;insert&lt;/span&gt;&lt;span&gt;&amp;nbsp;tbtree&amp;nbsp;(ID,Context,ParentID)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;values&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;15,&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&apos;汕头&apos;&lt;/span&gt;&lt;span&gt;,5) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;SET&lt;/span&gt;&lt;span&gt;&amp;nbsp;IDENTITY_INSERT&amp;nbsp;tbtree&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;off&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;img style=&quot;cursor: hand&quot; onmouseover=&quot;this.style.cursor=&apos;hand&apos;;&quot; onclick=&quot;window.open(this.src);&quot; border=&quot;0&quot; alt=&quot;按此在新窗口打开图片&quot; src=&quot;http://www.517sou.net/attachments/month_0412/kh0n_30-1.jpg&quot; width=&quot;384&quot; onload=&quot;javascript:DrawImage(this);&quot; height=&quot;312&quot; /&gt;&lt;br /&gt;下载地址&lt;br /&gt;&lt;a href=&quot;http://msdn.microsoft.com/downloads/samples/internet/ASP_DOT_NET_ServerControls/WebControls/default.asp&quot; target=&quot;_blank&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0000ff&quot;&gt;http://msdn.microsoft.com/downloads/samples/internet/ASP_DOT_NET_ServerControls/WebControls/default.asp&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;br /&gt;安装后，通过“自定义工具箱”-&amp;gt;“.net框架组件”把TreeView添加到工具箱里。&lt;br /&gt;新建一个项目，选择Visual&amp;nbsp;Basic.Net&amp;nbsp;工程Asp.net&amp;nbsp;Web应用程序，在页面上拖画一个TreeView控件。&lt;br /&gt;&lt;br /&gt;Html页:&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-xml&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;%@&amp;nbsp;Register&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;TagPrefix&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;iewc&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;Namespace&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;Microsoft.Web.UI.WebControls&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;Assembly&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;Microsoft.Web.UI.WebControls,&amp;nbsp;Version=1.0.2.226,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=31bf3856ad364e35&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;%&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;%@&amp;nbsp;Page&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;Language&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;vb&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;AutoEventWireup&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;Codebehind&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;WebForm1.aspx.vb&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;Inherits&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;Tree.WebForm1&amp;quot;&lt;/span&gt;&lt;span&gt;%&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;lt;!DOCTYPE&amp;nbsp;HTML&amp;nbsp;PUBLIC&amp;nbsp;&amp;quot;-//W3C//DTD&amp;nbsp;HTML&amp;nbsp;4.0&amp;nbsp;Transitional//EN&amp;quot;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;HTML&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;HEAD&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;WebForm1&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;meta&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;name&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;GENERATOR&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;content&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;Microsoft&amp;nbsp;Visual&amp;nbsp;Studio&amp;nbsp;.NET&amp;nbsp;7.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;meta&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;name&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;CODE_LANGUAGE&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;content&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;Visual&amp;nbsp;Basic&amp;nbsp;7.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;meta&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;name&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;vs_defaultClientScript&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;content&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;JavaScript&amp;quot;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;meta&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;name&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;vs_targetSchema&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;content&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;http://schemas.microsoft.com/intellisense/ie5&amp;quot;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;HEAD&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;body&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;MS_POSITIONING&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;GridLayout&amp;quot;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;form&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;id&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;Form1&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;method&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;post&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;runat&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;FONT&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;face&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;宋体&amp;quot;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;iewc:TreeView&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;id&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;TreeView1&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;style&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;Z-INDEX:&amp;nbsp;101;&amp;nbsp;LEFT:&amp;nbsp;39px;&amp;nbsp;TOP:&amp;nbsp;68px&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;attribute&quot;&gt;runat&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span class=&quot;attribute-value&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;iewc:TreeView&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;FONT&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;form&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;tag&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag-name&quot;&gt;HTML&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;后台代码：&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-vb&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Private&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Sub&lt;/span&gt;&lt;span&gt;&amp;nbsp;Page_Load(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;ByVal&lt;/span&gt;&lt;span&gt;&amp;nbsp;sender&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;As&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Object&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;ByVal&lt;/span&gt;&lt;span&gt;&amp;nbsp;e&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;As&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.EventArgs)&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Handles&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;MyBase&lt;/span&gt;&lt;span&gt;.Load &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Dim&lt;/span&gt;&lt;span&gt;&amp;nbsp;ds&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;As&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;New&lt;/span&gt;&lt;span&gt;&amp;nbsp;DataSet() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Dim&lt;/span&gt;&lt;span&gt;&amp;nbsp;CN&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;As&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;New&lt;/span&gt;&lt;span&gt;&amp;nbsp;SqlConnection() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Try&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;&apos;初始化连接字符串 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;CN.ConnectionString&amp;nbsp;=&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;data&amp;nbsp;source=pmserver;initial&amp;nbsp;catalog=Benchmark;persist&amp;nbsp;security&amp;nbsp;info=False;user&amp;nbsp;id=sa;Password=sa;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;CN.Open() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Dim&lt;/span&gt;&lt;span&gt;&amp;nbsp;adp&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;As&lt;/span&gt;&lt;span&gt;&amp;nbsp;SqlDataAdapter&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;New&lt;/span&gt;&lt;span&gt;&amp;nbsp;SqlDataAdapter(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;tbTree&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;CN) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;adp.Fill(ds) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Me&lt;/span&gt;&lt;span&gt;.ViewState(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;ds&amp;quot;&lt;/span&gt;&lt;span&gt;)&amp;nbsp;=&amp;nbsp;ds &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Catch&lt;/span&gt;&lt;span&gt;&amp;nbsp;ex&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;As&lt;/span&gt;&lt;span&gt;&amp;nbsp;Exception &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#If&amp;nbsp;DEBUG&amp;nbsp;Then &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&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;Session(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span&gt;)&amp;nbsp;=&amp;nbsp;ex.ToString() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;Response.Redirect(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;error.aspx&amp;quot;&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;&apos;̀跳转程序的公共错误处理页面 &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#End&amp;nbsp;If &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Finally&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;&apos;关闭连接 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;CN.Close() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;End&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Try&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;&apos;调用递归函数，完成树形结构的生成 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AddTree(0,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Nothing&lt;/span&gt;&lt;span&gt;) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;End&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Sub&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;&apos;递归添加树的节点 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Private&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Sub&lt;/span&gt;&lt;span&gt;&amp;nbsp;AddTree(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;ByVal&lt;/span&gt;&lt;span&gt;&amp;nbsp;ParentID&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;As&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Integer&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;ByVal&lt;/span&gt;&lt;span&gt;&amp;nbsp;pNode&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;As&lt;/span&gt;&lt;span&gt;&amp;nbsp;TreeNode) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Dim&lt;/span&gt;&lt;span&gt;&amp;nbsp;ds&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;As&lt;/span&gt;&lt;span&gt;&amp;nbsp;DataSet &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ds&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Me&lt;/span&gt;&lt;span&gt;.ViewState(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;ds&amp;quot;&lt;/span&gt;&lt;span&gt;) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Dim&lt;/span&gt;&lt;span&gt;&amp;nbsp;dvTree&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;As&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;New&lt;/span&gt;&lt;span&gt;&amp;nbsp;DataView() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dvTree&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;New&lt;/span&gt;&lt;span&gt;&amp;nbsp;DataView(ds.Tables(0)) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;&apos;过滤ParentID,得到当前的所有子节点 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dvTree.RowFilter&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;PARENTID&amp;nbsp;=&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+&amp;nbsp;ParentID.ToString &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Dim&lt;/span&gt;&lt;span&gt;&amp;nbsp;Row&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;As&lt;/span&gt;&lt;span&gt;&amp;nbsp;DataRowView &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;For&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Each&lt;/span&gt;&lt;span&gt;&amp;nbsp;Row&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;In&lt;/span&gt;&lt;span&gt;&amp;nbsp;dvTree &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Dim&lt;/span&gt;&lt;span&gt;&amp;nbsp;Node&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;As&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;New&lt;/span&gt;&lt;span&gt;&amp;nbsp;TreeNode() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;If&lt;/span&gt;&lt;span&gt;&amp;nbsp;pNode&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Is&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Nothing&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Then&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;&apos;判断是否根节点 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;&apos;添加根节点 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;Node.Text&amp;nbsp;=&amp;nbsp;Row(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;ConText&amp;quot;&lt;/span&gt;&lt;span&gt;).ToString() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;TreeView1.Nodes.Add(Node) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;Node.Expanded&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;True&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;&apos;再次递归 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;AddTree(Int32.Parse(Row(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;&lt;span&gt;).ToString()),&amp;nbsp;Node) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Else&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;&apos;̀添加当前节点的子节点 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;Node.Text&amp;nbsp;=&amp;nbsp;Row(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;ConText&amp;quot;&lt;/span&gt;&lt;span&gt;).ToString() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;pNode.Nodes.Add(Node) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;Node.Expanded&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;True&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;&apos;再次递归 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;AddTree(Int32.Parse(Row(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;&lt;span&gt;).ToString()),&amp;nbsp;Node) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;End&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;If&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Next&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;End&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;Sub&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;C#版本：&lt;/p&gt;&lt;pre&gt;&lt;ol class=&quot;dp-c&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Collections; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.ComponentModel; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Data; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Drawing; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.SessionState; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI.WebControls; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Web.UI.HtmlControls; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;Microsoft.Web.UI.WebControls; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.Data.SqlClient; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;namespace&lt;/span&gt;&lt;span&gt;&amp;nbsp;TreeCS &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;WebForm1&amp;nbsp;的摘要说明 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;class&lt;/span&gt;&lt;span&gt;&amp;nbsp;WebForm1&amp;nbsp;:&amp;nbsp;System.Web.UI.Page &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;protected&lt;/span&gt;&lt;span&gt;&amp;nbsp;Microsoft.Web.UI.WebControls.TreeView&amp;nbsp;TreeView1; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;private&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;Page_Load(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;object&lt;/span&gt;&lt;span&gt;&amp;nbsp;sender,&amp;nbsp;System.EventArgs&amp;nbsp;e) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//&amp;nbsp;定义数据库连接 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;SqlConnection&amp;nbsp;CN&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;SqlConnection(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;try&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//初始化连接字符串 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;CN.ConnectionString= &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;data&amp;nbsp;source=pmserver;initial&amp;nbsp;catalog=Benchmark;persist&amp;nbsp;security&amp;nbsp;info=False;user&amp;nbsp;id=sa;Password=sa;&amp;quot;&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;CN.Open(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;SqlDataAdapter&amp;nbsp;adp&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;SqlDataAdapter(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;tbTree&amp;quot;&lt;/span&gt;&lt;span&gt;,CN); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;DataSet&amp;nbsp;ds=&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;DataSet(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;adp.Fill(ds); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;this&lt;/span&gt;&lt;span&gt;.ViewState[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;ds&amp;quot;&lt;/span&gt;&lt;span&gt;]=ds;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;catch&lt;/span&gt;&lt;span&gt;&amp;nbsp;(Exception&amp;nbsp;ex) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;Session[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span&gt;]&amp;nbsp;=&amp;nbsp;ex.ToString(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;Response.Redirect(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;error.aspx&amp;quot;&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//̀跳转程序的公共错误处理页面 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;finally&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;CN.Close(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//调用递归函数，完成树形结构的生成 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;AddTree(0,&amp;nbsp;(TreeNode)&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;null&lt;/span&gt;&lt;span&gt;); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//递归添加树的节点 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;AddTree(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt;&lt;span&gt;&amp;nbsp;ParentID,TreeNode&amp;nbsp;pNode)&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;DataSet&amp;nbsp;ds=(DataSet)&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;this&lt;/span&gt;&lt;span&gt;.ViewState[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;ds&amp;quot;&lt;/span&gt;&lt;span&gt;];&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;DataView&amp;nbsp;dvTree&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;DataView(ds.Tables[0]); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//过滤ParentID,得到当前的所有子节点 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;dvTree.RowFilter&amp;nbsp;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;[PARENTID]&amp;nbsp;=&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+&amp;nbsp;ParentID; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;foreach&lt;/span&gt;&lt;span&gt;(DataRowView&amp;nbsp;Row&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;in&lt;/span&gt;&lt;span&gt;&amp;nbsp;dvTree)&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;TreeNode&amp;nbsp;Node=&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;TreeNode()&amp;nbsp;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;(pNode&amp;nbsp;==&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;null&lt;/span&gt;&lt;span&gt;)&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//添加根节点 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Node.Text&amp;nbsp;=&amp;nbsp;Row[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;ConText&amp;quot;&lt;/span&gt;&lt;span&gt;].ToString(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TreeView1.Nodes.Add(Node); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Node.Expanded=&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AddTree(Int32.Parse(Row[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;&lt;span&gt;].ToString()),&amp;nbsp;Node);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//再次递归 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;}&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//̀添加当前节点的子节点 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Node.Text&amp;nbsp;=&amp;nbsp;Row[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;ConText&amp;quot;&lt;/span&gt;&lt;span&gt;].ToString(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pNode.Nodes.Add(Node); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Node.Expanded&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;true&lt;/span&gt;&lt;span&gt;; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AddTree(Int32.Parse(Row[&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;&lt;span&gt;].ToString()),Node);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//再次递归 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/li&gt;&lt;li class=&quot;alt&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#region&amp;nbsp;Web&amp;nbsp;Form&amp;nbsp;Designer&amp;nbsp;generated&amp;nbsp;code &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;override&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;protected&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;OnInit(EventArgs&amp;nbsp;e) &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;// &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;//&amp;nbsp;CODEGEN该调用是&amp;nbsp;ASP.NET&amp;nbsp;Web&amp;nbsp;窗体设计器所必需的。 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;// &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;InitializeComponent(); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;base&lt;/span&gt;&lt;span&gt;.OnInit(e); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///设计器支持所需的方法&amp;nbsp;-&amp;nbsp;不要使用代码编辑器修改 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;此方法的内容 &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;///&amp;nbsp;&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;private&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;InitializeComponent() &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&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;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&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;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;this&lt;/span&gt;&lt;span&gt;.Load&amp;nbsp;+=&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;System.EventHandler(&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;this&lt;/span&gt;&lt;span&gt;.Page_Load); &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#endregion &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;}&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;后记：请读者自行修改程序中的连接字符串设置。&lt;br /&gt;附：相关微软MSDN文档，包括在VB6和.NET中从XML建立树形结构&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;http://support.microsoft.com/default.aspx?kbid=311318&quot; target=&quot;_blank&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0000ff&quot;&gt;http://support.microsoft.com/default.aspx?kbid=311318&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://support.microsoft.com/default.aspx?kbid=308063&quot; target=&quot;_blank&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0000ff&quot;&gt;http://support.microsoft.com/default.aspx?kbid=308063&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://support.microsoft.com/default.aspx?kbid=317597&quot; target=&quot;_blank&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0000ff&quot;&gt;http://support.microsoft.com/default.aspx?kbid=317597&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://support.microsoft.com/default.aspx?kbid=244954&quot; target=&quot;_blank&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0000ff&quot;&gt;http://support.microsoft.com/default.aspx?kbid=244954&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;</description>
		<guid>http://www.517sou.net/Article/73.aspx</guid>
		<trackback:ping>http://www.517sou.net/Article/73/Trackback.ashx</trackback:ping>
		<comments>http://www.517sou.net/Article/73.aspx#CommentPostAnchor</comments>
		<wfw:commentRss>http://www.517sou.net/Article/73/Feeds.ashx</wfw:commentRss>
	</item>
</channel>
</rss>
