<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_人最大的荣耀不在于从未失败，而在于每次失败以后都能东山再起</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/14927/rss</id><updated>2012-02-10T09:25:24Z</updated><author><name>今夜太冷</name><uri>http://www.cnblogs.com/time-is-life/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/time-is-life/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/14927/rss"/><entry><id>http://www.cnblogs.com/time-is-life/archive/2012/02/10/2345721.html</id><title type="text">如何用正则表达式替换掉所有HTM内容</title><summary type="text">比如有如下的内容：&amp;lt;html&amp;gt; &amp;lt;head&amp;gt; &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt; &amp;lt;/head&amp;gt; &amp;lt;body&amp;gt; fdfdfds&amp;lt;/body&amp;gt; &amp;lt;/html&amp;gt; remained content 用正则表达式替换后，如何才能只...</summary><published>2012-02-10T09:25:00Z</published><updated>2012-02-10T09:25:00Z</updated><author><name>今夜太冷</name><uri>http://www.cnblogs.com/time-is-life/</uri></author><link rel="alternate" href="http://www.cnblogs.com/time-is-life/archive/2012/02/10/2345721.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/time-is-life/archive/2012/02/10/2345721.html"/><content type="html">&lt;p&gt;比如有如下的内容：&#xD;
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;lt;&lt;span style="color:maroon"&gt;html&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;    &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;head&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
									&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;        &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;title&lt;span style="color:blue"&gt;&amp;gt;&amp;lt;/&lt;span style="color:maroon"&gt;title&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;    &lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;head&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
									&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;    &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;body&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
									&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;    fdfdfds&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;    &lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;body&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
									&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;html&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;remained content&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
							&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;用正则表达式替换后，如何才能只剩下：&#xD;
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;remained content&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
							&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;答案:&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;用如下的代码：&#xD;
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;result = &lt;span style="color:#2b91af"&gt;Regex&lt;/span&gt;.Replace(result, &lt;span style="color:#a31515"&gt;"&amp;lt;html&amp;gt;(&amp;lt;|&amp;gt;|.|\\n)*?&amp;lt;/html&amp;gt;"&lt;/span&gt;, &lt;span style="color:#a31515"&gt;""&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/time-is-life/aggbug/2345721.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/time-is-life/archive/2012/02/10/2345721.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/time-is-life/archive/2012/02/07/2341704.html</id><title type="text">PowerShell中.psl文件不执行</title><summary type="text">用如下的命令在PowerShell中创建一个psl文件:notepad .\net.psl在里面输入命令后保存并关闭.再在PowerShell中执行如下的命令：.\net.psl结果并没有执行命令，而是弹出如下的窗口：	怎么回事那？解决方法：后缀名是ps1,而不是psl.一字之差，差之千里啊。另外需要用下面的命令设置执行策略，.ps1文件才能执行。Set-ExecutionPolicy remot...</summary><published>2012-02-07T09:05:00Z</published><updated>2012-02-07T09:05:00Z</updated><author><name>今夜太冷</name><uri>http://www.cnblogs.com/time-is-life/</uri></author><link rel="alternate" href="http://www.cnblogs.com/time-is-life/archive/2012/02/07/2341704.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/time-is-life/archive/2012/02/07/2341704.html"/><content type="html">&lt;p&gt;用如下的命令在PowerShell中创建一个psl文件:&#xD;
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;notepad .\net.psl&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;在里面输入命令后保存并关闭.&#xD;
&lt;/p&gt;&lt;p&gt;再在PowerShell中执行如下的命令：&#xD;
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;.\net.psl&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;结果并没有执行命令，而是弹出如下的窗口：&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/time-is-life/201202/201202071705044513.png" alt=""/&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;怎么回事那？&#xD;
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;解决方法：&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;后缀名是ps1,而不是psl.一字之差，差之千里啊。&#xD;
&lt;/p&gt;&lt;p&gt;另外需要用下面的命令设置执行策略，.ps1文件才能执行。&#xD;
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;Set-ExecutionPolicy remotesigned&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/time-is-life/aggbug/2341704.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/time-is-life/archive/2012/02/07/2341704.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/time-is-life/archive/2012/02/07/2341436.html</id><title type="text">用windows explorer 从SharePoint上拷贝文件的问题</title><summary type="text">用explorer视图打开 SharePoint的一个库：	可以看到文件列表，但是拷贝到本地的时候报错：	测试了一下：用记事本打开的话，也会报错：	看来确实是权限的问题。只能在网站上send to-&amp;gt;download a copy一个文件一个文件的下载了</summary><published>2012-02-07T06:15:00Z</published><updated>2012-02-07T06:15:00Z</updated><author><name>今夜太冷</name><uri>http://www.cnblogs.com/time-is-life/</uri></author><link rel="alternate" href="http://www.cnblogs.com/time-is-life/archive/2012/02/07/2341436.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/time-is-life/archive/2012/02/07/2341436.html"/><content type="html">&lt;p&gt;用explorer视图打开 SharePoint的一个库：&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/time-is-life/201202/201202071415193751.png" alt=""/&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;可以看到文件列表，但是拷贝到本地的时候报错：&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/time-is-life/201202/201202071415262983.png" alt=""/&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;测试了一下：&#xD;
&lt;/p&gt;&lt;p&gt;用记事本打开的话，也会报错：&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/time-is-life/201202/201202071415266430.png" alt=""/&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;看来确实是权限的问题。&#xD;
&lt;/p&gt;&lt;p&gt;只能在网站上send to-&amp;gt;download a copy一个文件一个文件的下载了&#xD;
&lt;/p&gt;&lt;img src="http://www.cnblogs.com/time-is-life/aggbug/2341436.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/time-is-life/archive/2012/02/07/2341436.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/time-is-life/archive/2012/02/03/2337236.html</id><title type="text">一个写文件的函数</title><summary type="text">/// &amp;lt;summary&amp;gt; /// Writes log file. /// &amp;lt;/summary&amp;gt; /// &amp;lt;param name=&amp;quot;filePath&amp;quot;&amp;gt;file path&amp;lt;/param&amp;gt; ///	...</summary><published>2012-02-03T08:06:00Z</published><updated>2012-02-03T08:06:00Z</updated><author><name>今夜太冷</name><uri>http://www.cnblogs.com/time-is-life/</uri></author><link rel="alternate" href="http://www.cnblogs.com/time-is-life/archive/2012/02/03/2337236.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/time-is-life/archive/2012/02/03/2337236.html"/><content type="html">&lt;p style="text-align: center"&gt;&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:gray"&gt;///&lt;span style="color:green"&gt;&#xD;
										&lt;span style="color:gray"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&#xD;
									&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:gray"&gt;///&lt;span style="color:green"&gt; Writes log file.&lt;/span&gt;&#xD;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:gray"&gt;///&lt;span style="color:green"&gt;&#xD;
										&lt;span style="color:gray"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&#xD;
									&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:gray"&gt;///&lt;span style="color:green"&gt;&#xD;
										&lt;span style="color:gray"&gt;&amp;lt;param name="filePath"&amp;gt;&lt;span style="color:green"&gt;file path&lt;span style="color:gray"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:gray"&gt;///&lt;span style="color:green"&gt;&#xD;
										&lt;span style="color:gray"&gt;&amp;lt;param name="content"&amp;gt;&lt;span style="color:green"&gt;file content&lt;span style="color:gray"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:gray"&gt;///&lt;span style="color:green"&gt;&#xD;
										&lt;span style="color:gray"&gt;&amp;lt;param name="append"&amp;gt;&lt;span style="color:green"&gt;whether append to end of the file&lt;span style="color:gray"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:blue"&gt;public&lt;/span&gt;&#xD;
								&lt;span style="color:blue"&gt;static&lt;/span&gt;&#xD;
								&lt;span style="color:blue"&gt;void&lt;/span&gt; WriteLogFile(&lt;span style="color:blue"&gt;string&lt;/span&gt; filePath, &lt;span style="color:blue"&gt;string&lt;/span&gt; content, &lt;span style="color:blue"&gt;bool&lt;/span&gt; append)&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;        {&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:#2b91af"&gt;FileInfo&lt;/span&gt; fi = &lt;span style="color:blue"&gt;new&lt;/span&gt;&#xD;
								&lt;span style="color:#2b91af"&gt;FileInfo&lt;/span&gt;(filePath);&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:blue"&gt;if&lt;/span&gt; (fi.Exists)&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            {&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:blue"&gt;if&lt;/span&gt; (!append)&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                {&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                    fi.Delete();&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                }&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            }&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:blue"&gt;else&lt;/span&gt;&#xD;
							&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            {&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:blue"&gt;using&lt;/span&gt; (&lt;span style="color:#2b91af"&gt;FileStream&lt;/span&gt; fs = fi.Create())&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                { }&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            }&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:blue"&gt;using&lt;/span&gt; (&lt;span style="color:#2b91af"&gt;StreamWriter&lt;/span&gt; sw = fi.AppendText())&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            {&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                sw.WriteLine(content);&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            }&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;        }&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;其中这一句：&#xD;
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:blue"&gt;using&lt;/span&gt; (&lt;span style="color:#2b91af"&gt;FileStream&lt;/span&gt; fs = fi.Create())&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                { }&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;一定要用using, 否则FileStream不会被释放，导致后面的文件操作提示："The process cannot access the file &amp;lt;file name&amp;gt; because it is being used by another process."&#xD;
&lt;/p&gt;&lt;img src="http://www.cnblogs.com/time-is-life/aggbug/2337236.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/time-is-life/archive/2012/02/03/2337236.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/time-is-life/archive/2012/02/02/2336087.html</id><title type="text">DotNetZip使用简介</title><summary type="text">DotnetZip是一个开源类库，可以用donet开发语言来操作文件来生成zip文件。功能强大，操作方便。下载地址在这里：http://dotnetzip.codeplex.com/	下载到的包里有很多个dll文件，一般引用Ionic.Zip.dll就可以：然后引用这个命名空间：using Ionic.Zip;以下是一个简单的例子：using (ZipFile zip = new ZipFile...</summary><published>2012-02-02T09:54:00Z</published><updated>2012-02-02T09:54:00Z</updated><author><name>今夜太冷</name><uri>http://www.cnblogs.com/time-is-life/</uri></author><link rel="alternate" href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2336087.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2336087.html"/><content type="html">&lt;p&gt;DotnetZip是一个开源类库，可以用donet开发语言来操作文件来生成zip文件。功能强大，操作方便。&#xD;
&lt;/p&gt;&lt;p&gt;下载地址在这里：&#xD;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://dotnetzip.codeplex.com/"&gt;http://dotnetzip.codeplex.com/&lt;/a&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;下载到的包里有很多个dll文件，一般引用Ionic.Zip.dll就可以：&#xD;
&lt;/p&gt;&lt;p&gt;然后引用这个命名空间：&#xD;
&lt;/p&gt;&lt;p&gt;using Ionic.Zip;&#xD;
&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;以下是一个简单的例子：&#xD;
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;using (ZipFile zip = new ZipFile())&#xD;
&lt;/p&gt;&lt;p&gt;{&#xD;
&lt;/p&gt;&lt;p&gt;// add this map file into the "images" directory in the zip archive&#xD;
&lt;/p&gt;&lt;p&gt;zip.AddFile("c:\\images\\personal\\7440-N49th.png", "images");&#xD;
&lt;/p&gt;&lt;p&gt;// add the report into a different directory in the archive&#xD;
&lt;/p&gt;&lt;p&gt;zip.AddFile("c:\\Reports\\2008-Regional-Sales-Report.pdf", "files");&#xD;
&lt;/p&gt;&lt;p&gt;zip.AddFile("ReadMe.txt");&#xD;
&lt;/p&gt;&lt;p&gt;zip.Save("MyZipFile.zip");&#xD;
&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;更详细的例子在这里，可以看到这东东支持的开发语言很多：&#xD;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://dotnetzip.codeplex.com/wikipage?title=Examples&amp;amp;referringTitle=Home"&gt;http://dotnetzip.codeplex.com/wikipage?title=Examples&amp;amp;referringTitle=Home&lt;/a&gt;&#xD;
	&lt;/p&gt;&lt;img src="http://www.cnblogs.com/time-is-life/aggbug/2336087.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2336087.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/time-is-life/archive/2012/02/02/2336074.html</id><title type="text">SharePoint中的RPC调用</title><summary type="text">SharePoint中的RPC，其原理是用post方法向sharepoint服务器发送如下的URL请求：http://[site_name]/_vti_bin/owssvr.dll?Cmd=Method_name[&amp;amp;Parameter1=Value1&amp;amp;Parameter2=Value2...]这个一个请求URL的例子：POST /site_url/_vti_bin/_vti_aut/author...</summary><published>2012-02-02T09:45:00Z</published><updated>2012-02-02T09:45:00Z</updated><author><name>今夜太冷</name><uri>http://www.cnblogs.com/time-is-life/</uri></author><link rel="alternate" href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2336074.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2336074.html"/><content type="html">&lt;p&gt;SharePoint中的RPC，其原理是用post方法向sharepoint服务器发送如下的URL请求：&#xD;
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;http://[site_name]/_vti_bin/owssvr.dll?Cmd=Method_name[&amp;amp;Parameter1=Value1&amp;amp;Parameter2=Value2...]&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;这个一个请求URL的例子：&#xD;
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;POST /site_url/_vti_bin/_vti_aut/author.dll HTTP/1.0&#xD;
&lt;/p&gt;&lt;p&gt;.&#xD;
&lt;/p&gt;&lt;p&gt;.&#xD;
&lt;/p&gt;&lt;p&gt;.&#xD;
&lt;/p&gt;&lt;p&gt;method=list+documents:6.0.n.nnnn&#xD;
&lt;/p&gt;&lt;p&gt;&amp;amp;service_name=/&#xD;
&lt;/p&gt;&lt;p&gt;&amp;amp;listHiddenDocs=false&#xD;
&lt;/p&gt;&lt;p&gt;&amp;amp;listExplorerDocs=false&#xD;
&lt;/p&gt;&lt;p&gt;&amp;amp;listRecurse=false&#xD;
&lt;/p&gt;&lt;p&gt;&amp;amp;listFiles=true&#xD;
&lt;/p&gt;&lt;p&gt;&amp;amp;listFolders=true&#xD;
&lt;/p&gt;&lt;p&gt;&amp;amp;listLinkInfo=true&#xD;
&lt;/p&gt;&lt;p&gt;&amp;amp;listIncludeParent=true&#xD;
&lt;/p&gt;&lt;p&gt;&amp;amp;listDerived=false&#xD;
&lt;/p&gt;&lt;p&gt;&amp;amp;listBorders=false&#xD;
&lt;/p&gt;&lt;p&gt;&amp;amp;listChildWebs=true&#xD;
&lt;/p&gt;&lt;p&gt;&amp;amp;initialUrl=url&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;这个一个请求服务器返回数据的例子，是HTML格式，需要自己来解析以便得到想要的数据：&#xD;
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;Content-type: application/x-vermeer-rpc..X-FrontPage-User-Name:&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;usernameCRLF&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;CRLF&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;vermeer.RPC &#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;packet&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;LF&amp;lt;body&amp;gt;.&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;p&amp;gt;method=list documents: &#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;6.0.x.xxxxLF&amp;lt;p&amp;gt;document_list=&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;ul&amp;gt;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;ul&amp;gt;LF&amp;lt;li&amp;gt;document_name=Default.htm&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;meta_info=&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;ul&amp;gt;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;vti_author&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;SR|author&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;vti_title&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;SW|Home Page&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;vti_timecreated&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;TR|10 Sep 1998 10:07:54 -0700&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;vti_filesize&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;IX|277&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;vti_modifiedby&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;SR|author&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;vti_nexttolasttimemodified&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;TR|10 Sep 1998 10:07:54 -0700&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;vti_timelastmodified&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;TR|10 Sep 1998 10:07:55 -0700&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;vti_timelastwritten&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;TX|10 Sep 1998 10:07:56 -0700&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;/ul&amp;gt;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;/ul&amp;gt;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;ul&amp;gt;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;document_name=new1.htm&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;meta_info=&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;ul&amp;gt;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;vti_author&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;LF&amp;lt;li&amp;gt;SR|IUSR_author&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;. &#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;. &#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;.&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&amp;lt;/body&amp;gt;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Times New Roman; font-size:12pt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;有三种方法来使用RPC：&#xD;
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;使用ASPX页面：&#xD;
&lt;/div&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms470842.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms470842.aspx&lt;/a&gt;&#xD;
			&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;发送URL和发送CAML。这两种方法的原理在这里。&#xD;
&lt;/div&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms463030.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms463030.aspx&lt;/a&gt;&#xD;
			&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;自己定制类发送请求。&#xD;
&lt;/div&gt;&lt;p&gt;已经有了写了现成的类，在这里：&#xD;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/FrontPageRPC.cs.htm"&gt;http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/FrontPageRPC.cs.htm&lt;/a&gt;&#xD;
			&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;为了防止链接的页面被删除，在这里做一个备份。&#xD;
&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="margin-left: 36pt"&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:542px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#7f0055"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System/System/CatalogSystem.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;System&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#7f0055"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Generic/CatalogGeneric.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;System.Collections.Generic&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#7f0055"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/CatalogIO.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;System.IO&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#7f0055"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Net/System/Net/CatalogNet.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;System.Net&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#7f0055"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Security/System/Security/Principal/CatalogPrincipal.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;System.Security.Principal&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#7f0055"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/CatalogText.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;System.Text&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#7f0055"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/CatalogRegularExpressions.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;System.Text.RegularExpressions&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#7f0055"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/CatalogSpecialized.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;System.Collections.Specialized&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#7f0055"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Web/System/Web/CatalogWeb.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;System.Web&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#7f0055"&gt;&lt;strong&gt;namespace&lt;/strong&gt;&lt;/span&gt; PS.Utils.FPRPC{&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// &amp;lt;summary&amp;gt;&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// Client for calling Front Page Server Extensions.&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// &amp;lt;/summary&amp;gt;&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/FrontPageRPC.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;FrontPageRPC&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&#xD;
								&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;    {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;readonly&lt;/strong&gt;&lt;/span&gt; ICredentials credentials;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; serverExtensionsVersion;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;const&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; STR_AUTHOR_DLL_PATH = &lt;span style="color:#2a00ff"&gt;"/_vti_bin/_vti_aut/author.dll"&lt;/span&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;const&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; STR_VTI_RPC_PATH = &lt;span style="color:#2a00ff"&gt;"/_vti_bin/shtml.dll/_vti_rpc"&lt;/span&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;const&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; defaultServerVersion = &lt;span style="color:#2a00ff"&gt;"6.0.2.5614"&lt;/span&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/FrontPageRPC.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;FrontPageRPC&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;()&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            : &lt;span style="color:#7f0055"&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/span&gt;(CredentialCache.DefaultCredentials)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/FrontPageRPC.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;FrontPageRPC&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(ICredentials credentials)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            this.credentials = credentials;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// &amp;lt;summary&amp;gt;&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// Has WSS parse the site vs. file/folder portion of a URL.&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// &amp;lt;/summary&amp;gt;&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// &amp;lt;param name="uri"&amp;gt;&amp;lt;/param&amp;gt;&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; UrlToWebUrl(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; uri)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System/System/Uri.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Uri&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; aUri = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System/System/Uri.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Uri&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(uri);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"url to web url:"&lt;/span&gt; + defaultServerVersion);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"url"&lt;/span&gt;, aUri.AbsolutePath);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"flags"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"0"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; response = SendSimpleRequest(GetVtiRPC(aUri.GetLeftPart(UriPartial.Authority)), methodData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            webUrl.SiteUrl = aUri.GetLeftPart(UriPartial.Authority) + GetReturnValue(response, &lt;span style="color:#2a00ff"&gt;"webUrl"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            webUrl.FileUrl = HttpUtility.UrlDecode(GetReturnValue(response, &lt;span style="color:#2a00ff"&gt;"fileUrl"&lt;/span&gt;));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; webUrl;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/DocumentInfo.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;DocumentInfo&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; GetDocument(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl, &lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; outStream)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"get document:"&lt;/span&gt; + GetServerExtensionsVersion(webUrl));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"service_name"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;""&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"document_name"&lt;/span&gt;, webUrl.FileUrl);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"get_option"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"none"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"timeout"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"10"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt; (&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; responseStream = StartWebRequest(GetAuthorURL(webUrl), methodData))&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/BufferedStream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;BufferedStream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; bufferedResponseStream = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/BufferedStream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;BufferedStream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(responseStream, 4096);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; metaInfo = GetDocumentResponse(bufferedResponseStream);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                bufferedResponseStream.CopyTo(outStream);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; ParseMetaInformationResponse(metaInfo);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; GetDocumentResponse(&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; responseStream)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (&lt;span style="color:#e11b31"&gt;&lt;strong&gt;null&lt;/strong&gt;&lt;/span&gt; == responseStream)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;throw&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System/System/ArgumentException.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;ArgumentException&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(&lt;span style="color:#2a00ff"&gt;"responseStream is null"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; metaInfo = ExtractResponsePreamble(responseStream);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (string.IsNullOrEmpty(metaInfo))&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;throw&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/FrontPageRPCException.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;FrontPageRPCException&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(&lt;span style="color:#2a00ff"&gt;"unable to parse responseData"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            CheckForInternalErrorMessage(metaInfo);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            CheckForSuccessMessage(metaInfo);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; metaInfo;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; GetDocumentMetaInfoRaw(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"getDocsMetaInfo:"&lt;/span&gt; + GetServerExtensionsVersion(webUrl));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"service_name"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;""&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listHiddenDocs"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"true"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listLinkInfo"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"validateWelcomeNames"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"url_list"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"["&lt;/span&gt; + webUrl.FileUrl + &lt;span style="color:#2a00ff"&gt;"]"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; SendSimpleRequest(GetAuthorURL(webUrl), methodData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/DocumentInfo.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;DocumentInfo&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; GetDocumentMetaInfo(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; response = GetDocumentMetaInfoRaw(webUrl);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/DocumentInfo.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;DocumentInfo&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; docInfo = ParseMetaInformationResponse(response);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; docInfo;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; GetDocumentHash(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; response = GetDocumentMetaInfoRaw(webUrl);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; HashUtil.GetHash(response);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Generic/List.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;List&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&amp;lt;&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&amp;gt; ListFolders(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"list documents:"&lt;/span&gt; + GetServerExtensionsVersion(webUrl));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"service_name"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"/"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listHiddenDocs"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"true"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listExplorerDocs"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listRecurse"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listFiles"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listFolders"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"true"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listLinkInfo"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"true"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listIncludeParent"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listDerived"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listBorders"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listChildWebs"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"initialUrl"&lt;/span&gt;, webUrl.FileUrl);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; response = SendSimpleRequest(GetAuthorURL(webUrl), methodData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; ParseFileList(webUrl.SiteUrl, response, &lt;span style="color:#2a00ff"&gt;"url"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; ListWebs(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"get manifest:"&lt;/span&gt; + GetServerExtensionsVersion(webUrl));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"service_name"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"/"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"options"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"structure,files,userlists,list_data,globallists,subscriptions, discussions,userinfo,webparts,security,nontemplatizable_data"&lt;/span&gt;);            &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#3f7f5f"&gt;//            methodData.Add("options", "[structure]");            &#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; SendSimpleRequest(GetAuthorURL(webUrl), methodData);            &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:#3f7f5f"&gt;//            return ParseWebList(webUrl.SiteUrl, response, "url");&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Generic/List.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;List&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&amp;lt;&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&amp;gt; ListDocuments(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl, &lt;span style="color:#e11b31"&gt;&lt;strong&gt;bool&lt;/strong&gt;&lt;/span&gt; recursive)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"list documents:"&lt;/span&gt; + GetServerExtensionsVersion(webUrl));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"service_name"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"/"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listHiddenDocs"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"true"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listExplorerDocs"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listRecurse"&lt;/span&gt;, recursive ? &lt;span style="color:#2a00ff"&gt;"true"&lt;/span&gt; : &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listFiles"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"true"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listFolders"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listLinkInfo"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listIncludeParent"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listDerived"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listBorders"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listChildWebs"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"true"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"initialUrl"&lt;/span&gt;, webUrl.FileUrl);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; response = SendSimpleRequest(GetAuthorURL(webUrl), methodData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; ParseFileList(webUrl.SiteUrl, response, &lt;span style="color:#2a00ff"&gt;"document_name"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Generic/List.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;List&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&amp;lt;&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&amp;gt; ParseFileList(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; siteUrl, &lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; responseData, &lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; attributeName)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Regex.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Regex&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; fileMatchRegEx = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Regex.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Regex&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(&lt;span style="color:#2a00ff"&gt;@"\&amp;lt;li\&amp;gt;"&lt;/span&gt; + attributeName + &lt;span style="color:#2a00ff"&gt;@"=(?&amp;lt;name&amp;gt;.*?)\n\&amp;lt;li\&amp;gt;"&lt;/span&gt;, RegexOptions.Compiled | RegexOptions.Singleline);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Generic/List.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;List&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&amp;lt;&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&amp;gt; aRet = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Generic/List.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;List&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&amp;lt;&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&amp;gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/MatchCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;MatchCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; fileInfoMatches = fileMatchRegEx.Matches(responseData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;foreach&lt;/strong&gt;&lt;/span&gt; (&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Match.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Match&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; m &lt;span style="color:#7f0055"&gt;&lt;strong&gt;in&lt;/strong&gt;&lt;/span&gt; fileInfoMatches)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; fileUrl = HttpUtility.UrlDecode(DecodeString(m.Groups[&lt;span style="color:#2a00ff"&gt;"name"&lt;/span&gt;].Value));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                aRet.Add(&lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; { SiteUrl = siteUrl , FileUrl = fileUrl});&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; aRet;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; DecodeString(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; source)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (!string.IsNullOrEmpty(source))&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Regex.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Regex&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; rg = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Regex.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Regex&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(&lt;span style="color:#2a00ff"&gt;"&amp;amp;#([0-9]{1,3});&amp;amp;#([0-9]{1,3});"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;foreach&lt;/strong&gt;&lt;/span&gt; (&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Match.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Match&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; match &lt;span style="color:#7f0055"&gt;&lt;strong&gt;in&lt;/strong&gt;&lt;/span&gt; rg.Matches(source))&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;byte&lt;/strong&gt;&lt;/span&gt;[] bytes = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;[] { byte.Parse(match.Groups[1].Value), byte.Parse(match.Groups[2].Value) };&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                    source = source.Replace(match.Value, Encoding.UTF8.GetString(bytes));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                source = HttpUtility.HtmlDecode(source);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; source;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; CreateDirectory(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"create url-directories:"&lt;/span&gt; + GetServerExtensionsVersion(webUrl));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"service_name"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"/"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"urldirs"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"[[url="&lt;/span&gt; + webUrl.FileUrl + &lt;span style="color:#2a00ff"&gt;"]]"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; response = SendSimpleRequest(GetAuthorURL(webUrl), methodData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            CheckForSuccessMessage(response);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; GetServerExtensionsVersion(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; siteUrl)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (&lt;span style="color:#e11b31"&gt;&lt;strong&gt;null&lt;/strong&gt;&lt;/span&gt; == serverExtensionsVersion)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                methodData.Add(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"server version:"&lt;/span&gt; + defaultServerVersion);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                methodData.Add(&lt;span style="color:#2a00ff"&gt;"service_name"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"/"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; responseData = SendSimpleRequest(GetAuthorURL(siteUrl), methodData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                serverExtensionsVersion = ExtractServerExtensionsVersion(responseData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; serverExtensionsVersion;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; CheckInDocument(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl, &lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; comment)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"checkin document: "&lt;/span&gt; + GetServerExtensionsVersion(webUrl));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"service_name"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"/"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"document_name"&lt;/span&gt;, webUrl.FileUrl);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"comment"&lt;/span&gt;, comment);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"keep_checked_out"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            SendSimpleRequest(GetAuthorURL(webUrl), methodData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; CheckOutDocument(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"checkout document: "&lt;/span&gt; + GetServerExtensionsVersion(webUrl));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"service_name"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"/"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"document_name"&lt;/span&gt;, webUrl.FileUrl);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"force"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"0"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"timeout"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"0"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            SendSimpleRequest(GetAuthorURL(webUrl), methodData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; UnCheckOutDocument(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"uncheckout document: "&lt;/span&gt; + GetServerExtensionsVersion(webUrl));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"service_name"&lt;/span&gt;,&lt;span style="color:#2a00ff"&gt;"/"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"document_name"&lt;/span&gt;, webUrl.FileUrl );&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"force"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            SendSimpleRequest(GetAuthorURL(webUrl), methodData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; PutDocument(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl, &lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; file) &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            PutDocument(webUrl, file, &lt;span style="color:#e11b31"&gt;&lt;strong&gt;null&lt;/strong&gt;&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; PutDocument(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl, &lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; file, &lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/DocumentPropertyCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;DocumentPropertyCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; properties)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"put document:"&lt;/span&gt; + GetServerExtensionsVersion(webUrl));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"service_name"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;""&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"put_option"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"overwrite,createdir,migrationsemantics"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"keep_checked_out"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"false"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt; (&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; responseStream =&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                StartWebRequest(&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                    GetAuthorURL(webUrl),&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                    reqStream =&amp;gt; WriteDocumentData(reqStream, webUrl.FileUrl, file, properties, methodData)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                    )&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                )&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; response = GetResponseString(responseStream);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                CheckForInternalErrorMessage(response);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                CheckForSuccessMessage(response);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; SetDocumentMetaInfo(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; webUrl, &lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/DocumentInfo.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;DocumentInfo&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; docInfo)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"setDocsMetaInfo:"&lt;/span&gt; + GetServerExtensionsVersion(webUrl));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"service_name"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;""&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listHiddenDocs"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"true"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"listLinkInfo"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"true"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"url_list"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"["&lt;/span&gt; + webUrl.FileUrl + &lt;span style="color:#2a00ff"&gt;"]"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            methodData.Add(&lt;span style="color:#2a00ff"&gt;"metaInfoList"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"["&lt;/span&gt; + docInfo.GetMetaInfoList(&lt;span style="color:#7f0055"&gt;&lt;strong&gt;false&lt;/strong&gt;&lt;/span&gt;) + &lt;span style="color:#2a00ff"&gt;"]"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; responseData = SendSimpleRequest(GetAuthorURL(webUrl), methodData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (!SetMetaDataResponseSuccess(responseData))&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;throw&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/FrontPageRPCException.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;FrontPageRPCException&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(&lt;span style="color:#2a00ff"&gt;"SetDocumentMetaInfo failed"&lt;/span&gt;, webUrl.FileUrl);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;bool&lt;/strong&gt;&lt;/span&gt; SetMetaDataResponseSuccess(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; responseString)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; responseString.IndexOf(&lt;span style="color:#2a00ff"&gt;"method"&lt;/span&gt;) &amp;gt; -1 &amp;amp;&amp;amp; -1 == responseString.IndexOf(&lt;span style="color:#2a00ff"&gt;"failedUrls"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; AddCollectionData(&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/TextWriter.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;TextWriter&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; tw, &lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; data) &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {      &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; separator = string.Empty;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;foreach&lt;/strong&gt;&lt;/span&gt;(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; key &lt;span style="color:#7f0055"&gt;&lt;strong&gt;in&lt;/strong&gt;&lt;/span&gt; data) &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                tw.Write(separator);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                tw.Write(&lt;span style="color:#2a00ff"&gt;"{0}={1}"&lt;/span&gt;, key, HttpUtility.UrlEncode(data[key]));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                separator = &lt;span style="color:#2a00ff"&gt;"&amp;amp;"&lt;/span&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; CheckForInternalErrorMessage(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; response)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; message = DecodeString(GetReturnValue(response, &lt;span style="color:#2a00ff"&gt;"msg"&lt;/span&gt;));&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (!string.IsNullOrEmpty(message))&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;throw&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/FrontPageRPCException.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;FrontPageRPCException&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(message);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; CheckForSuccessMessage(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; response)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; message = GetReturnValue(response, &lt;span style="color:#2a00ff"&gt;"message"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (&lt;span style="color:#e11b31"&gt;&lt;strong&gt;null&lt;/strong&gt;&lt;/span&gt; == message || !message.StartsWith(&lt;span style="color:#2a00ff"&gt;"successfully"&lt;/span&gt;))&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;throw&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/FrontPageRPCException.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;FrontPageRPCException&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(&lt;span style="color:#2a00ff"&gt;"Failed to perform operation."&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// &amp;lt;summary&amp;gt;&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// Extract the &amp;amp;lt;html&amp;amp;gt;&amp;amp;lt;/html&amp;amp;gt; preamble in the response stream.&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// &amp;lt;/summary&amp;gt;&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// &amp;lt;remarks&amp;gt;&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// We're using the ReadStreamLine method instead of wrapping the stream in a StreamReader because we only&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// want to consume up to the end of the preamble; the remaining stream is other, potentially binary, data.&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// &amp;lt;/remarks&amp;gt;&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// &amp;lt;param name="stream"&amp;gt;&amp;lt;/param&amp;gt;&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; ExtractResponsePreamble(&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; stream) &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;// locate &amp;lt;html&amp;gt;&amp;lt;/html&amp;gt; response and extract.&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/StringBuilder.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;StringBuilder&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; responseData = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/StringBuilder.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;StringBuilder&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; line = ReadStreamLine(stream);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (line.StartsWith(&lt;span style="color:#2a00ff"&gt;"&amp;lt;html&amp;gt;"&lt;/span&gt;)) &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                responseData.Append(line);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;while&lt;/strong&gt;&lt;/span&gt; (!line.EndsWith(&lt;span style="color:#2a00ff"&gt;"&amp;lt;/html&amp;gt;\n"&lt;/span&gt;))&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                    line = ReadStreamLine(stream);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                    responseData.Append(line);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                } &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; responseData.ToString();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; ReadStreamLine(&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; stream)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/StringBuilder.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;StringBuilder&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; result = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/StringBuilder.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;StringBuilder&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;int&lt;/strong&gt;&lt;/span&gt; bytesRead = 0;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;for&lt;/strong&gt;&lt;/span&gt; (&lt;span style="color:#e11b31"&gt;&lt;strong&gt;byte&lt;/strong&gt;&lt;/span&gt;[] buffer = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;byte&lt;/strong&gt;&lt;/span&gt;[1]; stream.Read(buffer, 0, 1) &amp;gt; 0; )&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                bytesRead++;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                result.Append((&lt;span style="color:#e11b31"&gt;&lt;strong&gt;char&lt;/strong&gt;&lt;/span&gt;)buffer[0]);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (buffer[0] == &lt;span style="color:#2a00ff"&gt;'\n'&lt;/span&gt;)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;break&lt;/strong&gt;&lt;/span&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (bytesRead == 0)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;throw&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/FrontPageRPCException.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;FrontPageRPCException&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(&lt;span style="color:#2a00ff"&gt;"unexpected end of response"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; result.ToString();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; GetResponseString(&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; responseStream)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/StreamReader.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;StreamReader&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; sr = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/StreamReader.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;StreamReader&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(responseStream, Encoding.UTF8);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; sr.ReadToEnd();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; GetAuthorURL(&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/WebUrl.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebUrl&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; url) &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; url.SiteUrl + STR_AUTHOR_DLL_PATH;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; GetVtiRPC(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; url)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; url + STR_VTI_RPC_PATH;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; GetReturnValue(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; response, &lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; key)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            key = key.TrimEnd(&lt;span style="color:#2a00ff"&gt;'='&lt;/span&gt;) + &lt;span style="color:#2a00ff"&gt;"="&lt;/span&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;int&lt;/strong&gt;&lt;/span&gt; startPos = response.IndexOf(key);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (-1 == startPos)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;null&lt;/strong&gt;&lt;/span&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            startPos += key.Length;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;int&lt;/strong&gt;&lt;/span&gt; endPos = response.IndexOf(&lt;span style="color:#2a00ff"&gt;"\n"&lt;/span&gt;, startPos);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; response.Substring(startPos, endPos - startPos);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/DocumentInfo.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;DocumentInfo&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; ParseMetaInformationResponse(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; responseData)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Regex.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Regex&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; proprtyInfoRegEx = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Regex.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Regex&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(&lt;span style="color:#2a00ff"&gt;@"\&amp;lt;li\&amp;gt;(?&amp;lt;propName&amp;gt;.*?)\n\&amp;lt;li\&amp;gt;(?&amp;lt;propType&amp;gt;.*?)\|(?&amp;lt;propValue&amp;gt;.*?)\n"&lt;/span&gt;, RegexOptions.Compiled | RegexOptions.Multiline);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Regex.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Regex&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; metaInfoMatchRegEx = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Regex.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Regex&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(&lt;span style="color:#2a00ff"&gt;@"\&amp;lt;li\&amp;gt;meta_info=\n\&amp;lt;ul\&amp;gt;\n(?&amp;lt;metaInfo&amp;gt;.*?)\&amp;lt;\/ul\&amp;gt;"&lt;/span&gt;, RegexOptions.Compiled | RegexOptions.Singleline);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Regex.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Regex&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; nameAndTypeRegeEx = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Regex.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Regex&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(&lt;span style="color:#2a00ff"&gt;@"\&amp;lt;li\&amp;gt;(?&amp;lt;type&amp;gt;(document_name|url)?)=(?&amp;lt;name&amp;gt;.*?)\n"&lt;/span&gt;, RegexOptions.Compiled | RegexOptions.Multiline);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/DocumentInfo.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;DocumentInfo&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; docInfo = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/DocumentInfo.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;DocumentInfo&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Match.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Match&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; nameAndType = nameAndTypeRegeEx.Match(responseData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Match.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Match&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; metaInfoMatch = metaInfoMatchRegEx.Match(responseData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (metaInfoMatch.Success &amp;amp;&amp;amp; nameAndType.Success) &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                docInfo.IsFolder = nameAndType.Groups[&lt;span style="color:#2a00ff"&gt;"type"&lt;/span&gt;].Value == &lt;span style="color:#2a00ff"&gt;"url"&lt;/span&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                docInfo.DestinationFileName = nameAndType.Groups[&lt;span style="color:#2a00ff"&gt;"name"&lt;/span&gt;].Value;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/MatchCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;MatchCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; propMatches = proprtyInfoRegEx.Matches(metaInfoMatch.Value);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;foreach&lt;/strong&gt;&lt;/span&gt;(&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Text/System/Text/RegularExpressions/Match.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Match&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; propMatch &lt;span style="color:#7f0055"&gt;&lt;strong&gt;in&lt;/strong&gt;&lt;/span&gt; propMatches) &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/DocumentProperty.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;DocumentProperty&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; prop = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/DocumentProperty.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;DocumentProperty&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                        propMatch.Groups[&lt;span style="color:#2a00ff"&gt;"propName"&lt;/span&gt;].Value, &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                        propMatch.Groups[&lt;span style="color:#2a00ff"&gt;"propType"&lt;/span&gt;].Value,&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                        HttpUtility.UrlDecode(DecodeString(propMatch.Groups[&lt;span style="color:#2a00ff"&gt;"propValue"&lt;/span&gt;].Value))&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                        );&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                    docInfo.Properties.Add(prop);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; docInfo;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; StartWebRequest(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; url, &lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System/System/Action.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Action&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&amp;lt;&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&amp;gt; writeData)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;//Debug.WriteLine("URL: " + url);&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Net/System/Net/HttpWebRequest.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;HttpWebRequest&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; request = (&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Net/System/Net/HttpWebRequest.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;HttpWebRequest&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;)WebRequest.Create(url);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            request.Credentials = credentials;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            request.Method = &lt;span style="color:#2a00ff"&gt;"POST"&lt;/span&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            request.KeepAlive = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;true&lt;/strong&gt;&lt;/span&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            request.PreAuthenticate = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;true&lt;/strong&gt;&lt;/span&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            request.ContentType = &lt;span style="color:#2a00ff"&gt;"application/x-www-form-urlencoded"&lt;/span&gt;;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            request.Headers.Add(&lt;span style="color:#2a00ff"&gt;"X-Vermeer-Content-Type"&lt;/span&gt;, &lt;span style="color:#2a00ff"&gt;"application/x-www-form-urlencoded"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt; (&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; reqStream = request.GetRequestStream())&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                writeData(reqStream);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                reqStream.Flush();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Net/System/Net/WebResponse.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WebResponse&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; response = request.GetResponse();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; response.GetResponseStream();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; StartWebRequest(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; url, &lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData) &#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; StartWebRequest(url, reqStream =&amp;gt;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                                            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/StreamWriter.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;StreamWriter&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; sw = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/StreamWriter.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;StreamWriter&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(reqStream);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                                                AddCollectionData(sw, methodData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                                                sw.Flush();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                                            });&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; SendSimpleRequest(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; fullUrl, &lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt; (&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; responseStream = StartWebRequest(fullUrl, methodData))&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; response = GetResponseString(responseStream);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                CheckForInternalErrorMessage(response);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; response;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; WriteDocumentData(&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; stream, &lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; destinationFileName, &lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/Stream.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;Stream&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; file, &lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/DocumentPropertyCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;DocumentPropertyCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; properties, &lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Collections/System/Collections/Specialized/NameValueCollection.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;NameValueCollection&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; methodData)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/StreamWriter.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;StreamWriter&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; sw = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.IO/System/IO/StreamWriter.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;StreamWriter&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(stream);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System.Security/System/Security/Principal/WindowsIdentity.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;WindowsIdentity&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; currentUser = WindowsIdentity.GetCurrent();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (&lt;span style="color:#e11b31"&gt;&lt;strong&gt;null&lt;/strong&gt;&lt;/span&gt; == currentUser)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;throw&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/FrontPageRPCException.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;FrontPageRPCException&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(&lt;span style="color:#2a00ff"&gt;"unable to get current user from context"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/DocumentInfo.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;DocumentInfo&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; docInfo = &lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/DocumentInfo.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;DocumentInfo&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&#xD;
								&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                                       {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                                           ModifiedBy = currentUser.Name,&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                                           ModifiedDate = DateTime.Now.ToUniversalTime(),&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                                           DestinationFileName = destinationFileName,&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                                           Title = Path.GetFileName(destinationFileName)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                                       };&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (&lt;span style="color:#e11b31"&gt;&lt;strong&gt;null&lt;/strong&gt;&lt;/span&gt; != properties)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;                docInfo.Properties.Add(properties);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            AddCollectionData(sw, methodData);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            docInfo.WriteDocumentData(sw);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            sw.Flush();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            file.CopyTo(stream);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            stream.Flush();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;//Helper method for GetServerExtensionsVersion()&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;//The response from the server is in the format :&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;//&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;vermeer RPC packet&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;\n&amp;lt;body&amp;gt;\n&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;//&amp;lt;p&amp;gt;method=server version:6.0.0.0\n&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;//&amp;lt;p&amp;gt;server version=\n&amp;lt;ul&amp;gt;\n&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;//&amp;lt;li&amp;gt;major ver=6\n &amp;lt;li&amp;gt;minor ver=0\n&amp;lt;li&amp;gt;phase ver=2\n&amp;lt;li&amp;gt;ver incr=5528\n&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;//&amp;lt;/ul&amp;gt;\n&amp;lt;p&amp;gt;source control=1\n&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#3f7f5f"&gt;//&amp;lt;/body&amp;gt;\n&amp;lt;/html&amp;gt;\n&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; ExtractServerExtensionsVersion(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; response)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;int&lt;/strong&gt;&lt;/span&gt; index = 0;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; majorVer = GetVersionComponent(response, &lt;span style="color:#2a00ff"&gt;"major ver"&lt;/span&gt;, &lt;span style="color:#7f0055"&gt;&lt;strong&gt;ref&lt;/strong&gt;&lt;/span&gt; index);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; minorVer = GetVersionComponent(response, &lt;span style="color:#2a00ff"&gt;"minor ver"&lt;/span&gt;, &lt;span style="color:#7f0055"&gt;&lt;strong&gt;ref&lt;/strong&gt;&lt;/span&gt; index);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; phaseVer = GetVersionComponent(response, &lt;span style="color:#2a00ff"&gt;"phase ver"&lt;/span&gt;, &lt;span style="color:#7f0055"&gt;&lt;strong&gt;ref&lt;/strong&gt;&lt;/span&gt; index);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; verIncr = GetVersionComponent(response, &lt;span style="color:#2a00ff"&gt;"ver incr"&lt;/span&gt;, &lt;span style="color:#7f0055"&gt;&lt;strong&gt;ref&lt;/strong&gt;&lt;/span&gt; index);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; string.Format(&lt;span style="color:#2a00ff"&gt;"{0}.{1}.{2}.{3}"&lt;/span&gt;, majorVer, minorVer, phaseVer, verIncr);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; GetVersionComponent(&lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; text, &lt;span style="color:#e11b31"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt; part, &lt;span style="color:#7f0055"&gt;&lt;strong&gt;ref&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;int&lt;/strong&gt;&lt;/span&gt; index)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            index = text.IndexOf(part, index);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; (-1 == index)&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            {&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;throw&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&#xD;
									&lt;a href="http://www.java2s.com/Open-Source/CSharp/Web/portalsolutions/PS/Utils/FPRPC/FrontPageRPCException.cs.htm"&gt;&lt;span style="color:blue; text-decoration:underline"&gt;&lt;strong&gt;FrontPageRPCException&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;(&lt;span style="color:#2a00ff"&gt;"Could not retrieve the server extension version"&lt;/span&gt;);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;            }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;int&lt;/strong&gt;&lt;/span&gt; startIndex = index + part.Length + 1;&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#e11b31"&gt;&lt;strong&gt;int&lt;/strong&gt;&lt;/span&gt; endIndex = text.IndexOf(&lt;span style="color:#2a00ff"&gt;"&amp;lt;"&lt;/span&gt;, index);&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&#xD;
									&lt;span style="color:#7f0055"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; text.Substring(startIndex, endIndex - startIndex).Trim();&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;        }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;    }&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;}&#xD;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left: 36pt"&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;MSDN上的参考在这里：&#xD;
&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms442469.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms442469.aspx&lt;/a&gt;&#xD;
	&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;或者在MSDN上搜索关键字：Remote Procedure Call Protocol&lt;/p&gt;&lt;img src="http://www.cnblogs.com/time-is-life/aggbug/2336074.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2336074.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/time-is-life/archive/2012/02/02/2335715.html</id><title type="text">dotNet中的多线程</title><summary type="text">基本原理来自这篇msdn上的文章：http://msdn.microsoft.com/en-us/library/ee789351.aspx	具体步骤如下：新建一个类LimitedConcurrencyLevelTaskScheduler /// &amp;lt;summary&amp;gt; /// Provides a task scheduler that e...</summary><published>2012-02-02T06:11:00Z</published><updated>2012-02-02T06:11:00Z</updated><author><name>今夜太冷</name><uri>http://www.cnblogs.com/time-is-life/</uri></author><link rel="alternate" href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2335715.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2335715.html"/><content type="html">&lt;p&gt;基本原理来自这篇msdn上的文章：&lt;br/&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee789351.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee789351.aspx&lt;/a&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;具体步骤如下：&#xD;
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;新建一个类LimitedConcurrencyLevelTaskScheduler&#xD;
&lt;/li&gt;&lt;/ol&gt;&lt;div style="margin-left: 36pt"&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:542px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p style="background: #dddddd"&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// Provides a task scheduler that ensures a maximum concurrency level while&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// running on top of the ThreadPool.&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;/summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;public&lt;span style="color:black"&gt;&#xD;
												&lt;span style="color:blue"&gt;class&lt;span style="color:black"&gt; LimitedConcurrencyLevelTaskScheduler : TaskScheduler&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;    {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;summary&amp;gt;Whether the current thread is processing work items.&amp;lt;/summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;        [ThreadStatic]&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;private&lt;span style="color:black"&gt;&#xD;
												&lt;span style="color:blue"&gt;static&lt;span style="color:black"&gt;&#xD;
														&lt;span style="color:blue"&gt;bool&lt;span style="color:black"&gt; _currentThreadIsProcessingItems;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;summary&amp;gt;The list of tasks to be executed.&amp;lt;/summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;private&lt;span style="color:black"&gt; readonly LinkedList&amp;lt;Task&amp;gt; _tasks = &lt;span style="color:blue"&gt;new&lt;span style="color:black"&gt; LinkedList&amp;lt;Task&amp;gt;(); // protected by lock(_tasks)&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;summary&amp;gt;The maximum concurrency level allowed by this scheduler.&amp;lt;/summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;private&lt;span style="color:black"&gt; readonly &lt;span style="color:blue"&gt;int&lt;span style="color:black"&gt; _maxDegreeOfParallelism;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;summary&amp;gt;Whether the scheduler is currently processing work items.&amp;lt;/summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;private&lt;span style="color:black"&gt;&#xD;
												&lt;span style="color:blue"&gt;int&lt;span style="color:black"&gt; _delegatesQueuedOrRunning = 0; // protected by lock(_tasks)&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&#xD;
 &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// Initializes an instance of the LimitedConcurrencyLevelTaskScheduler class with the&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// specified degree of parallelism.&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;/summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;param name="maxDegreeOfParallelism"&amp;gt;The maximum degree of parallelism provided by this scheduler.&amp;lt;/param&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;public&lt;span style="color:black"&gt; LimitedConcurrencyLevelTaskScheduler(&lt;span style="color:blue"&gt;int&lt;span style="color:black"&gt; maxDegreeOfParallelism)&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;        {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;if&lt;span style="color:black"&gt; (maxDegreeOfParallelism &amp;lt; 1) throw &lt;span style="color:blue"&gt;new&lt;span style="color:black"&gt; ArgumentOutOfRangeException(&lt;span style="color:maroon"&gt;"maxDegreeOfParallelism"&lt;span style="color:black"&gt;);&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;            _maxDegreeOfParallelism = maxDegreeOfParallelism;&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;        }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&#xD;
 &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;summary&amp;gt;Queues a task to the scheduler.&amp;lt;/summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;param name="task"&amp;gt;The task to be queued.&amp;lt;/param&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;protected&lt;span style="color:black"&gt; sealed override &lt;span style="color:blue"&gt;void&lt;span style="color:black"&gt; QueueTask(Task task)&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;        {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;// Add the task to the list of tasks to be processed.  If there aren't enough&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;// delegates currently queued or running to process tasks, schedule another.&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;            lock (_tasks)&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;            {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                _tasks.AddLast(task);&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;if&lt;span style="color:black"&gt; (_delegatesQueuedOrRunning &amp;lt; _maxDegreeOfParallelism)&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                    ++_delegatesQueuedOrRunning;&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                    NotifyThreadPoolOfPendingWork();&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;            }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;        }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&#xD;
 &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// Informs the ThreadPool that there's work to be executed for this scheduler.&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;/summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;private&lt;span style="color:black"&gt;&#xD;
												&lt;span style="color:blue"&gt;void&lt;span style="color:black"&gt; NotifyThreadPoolOfPendingWork()&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;        {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;            ThreadPool.UnsafeQueueUserWorkItem(_ =&amp;gt;&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;            {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;// Note that the current thread is now processing work items.&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;// This is necessary to enable inlining of tasks into this thread.&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                _currentThreadIsProcessingItems = &lt;span style="color:blue"&gt;true&lt;span style="color:black"&gt;;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;try&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;// Process all available items in the queue.&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;while&lt;span style="color:black"&gt; (&lt;span style="color:blue"&gt;true&lt;span style="color:black"&gt;)&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                    {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                        Task item;&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                        lock (_tasks)&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                        {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;// When there are no more items to be processed,&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;// note that we're done processing, and get out.&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;if&lt;span style="color:black"&gt; (_tasks.Count == 0)&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                            {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                                --_delegatesQueuedOrRunning;&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;break&lt;span style="color:black"&gt;;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                            }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&#xD;
 &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;// Get the next item from the queue&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                            item = _tasks.First.Value;&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                            _tasks.RemoveFirst();&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                        }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&#xD;
 &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;// Execute the task we pulled out of the queue&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;base&lt;span style="color:black"&gt;.TryExecuteTask(item);&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                    }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;// We're done processing items on the current thread&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;finally&lt;span style="color:black"&gt; { _currentThreadIsProcessingItems = &lt;span style="color:blue"&gt;false&lt;span style="color:black"&gt;; }&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;            }, &lt;span style="color:blue"&gt;null&lt;span style="color:black"&gt;);&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;        }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&#xD;
 &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;summary&amp;gt;Attempts to execute the specified task on the current thread.&amp;lt;/summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;param name="task"&amp;gt;The task to be executed.&amp;lt;/param&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;param name="taskWasPreviouslyQueued"&amp;gt;&amp;lt;/param&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;returns&amp;gt;Whether the task could be executed on the current thread.&amp;lt;/returns&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;protected&lt;span style="color:black"&gt; sealed override &lt;span style="color:blue"&gt;bool&lt;span style="color:black"&gt; TryExecuteTaskInline(Task task, &lt;span style="color:blue"&gt;bool&lt;span style="color:black"&gt; taskWasPreviouslyQueued)&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;        {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;// If this thread isn't already processing a task, we don't support inlining&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;if&lt;span style="color:black"&gt; (!_currentThreadIsProcessingItems) &lt;span style="color:blue"&gt;return&lt;span style="color:black"&gt;&#xD;
														&lt;span style="color:blue"&gt;false&lt;span style="color:black"&gt;;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&#xD;
 &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;// If the task was previously queued, remove it from the queue&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;if&lt;span style="color:black"&gt; (taskWasPreviouslyQueued) TryDequeue(task);&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&#xD;
 &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;// Try to run the task.&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;return&lt;span style="color:black"&gt;&#xD;
												&lt;span style="color:blue"&gt;base&lt;span style="color:black"&gt;.TryExecuteTask(task);&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;        }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&#xD;
 &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;summary&amp;gt;Attempts to remove a previously scheduled task from the scheduler.&amp;lt;/summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;param name="task"&amp;gt;The task to be removed.&amp;lt;/param&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;returns&amp;gt;Whether the task could be found and removed.&amp;lt;/returns&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;protected&lt;span style="color:black"&gt; sealed override &lt;span style="color:blue"&gt;bool&lt;span style="color:black"&gt; TryDequeue(Task task)&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;        {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;            lock (_tasks) &lt;span style="color:blue"&gt;return&lt;span style="color:black"&gt; _tasks.Remove(task);&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;        }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&#xD;
 &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;summary&amp;gt;Gets the maximum concurrency level supported by this scheduler.&amp;lt;/summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;public&lt;span style="color:black"&gt; sealed override &lt;span style="color:blue"&gt;int&lt;span style="color:black"&gt; MaximumConcurrencyLevel { &lt;span style="color:blue"&gt;get&lt;span style="color:black"&gt; { &lt;span style="color:blue"&gt;return&lt;span style="color:black"&gt; _maxDegreeOfParallelism; } }&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&#xD;
 &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;summary&amp;gt;Gets an enumerable of the tasks currently scheduled on this scheduler.&amp;lt;/summary&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:green"&gt;/// &amp;lt;returns&amp;gt;An enumerable of the tasks currently scheduled.&amp;lt;/returns&amp;gt;&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;protected&lt;span style="color:black"&gt; sealed override IEnumerable&amp;lt;Task&amp;gt; GetScheduledTasks()&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;        {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;bool&lt;span style="color:black"&gt; lockTaken = &lt;span style="color:blue"&gt;false&lt;span style="color:black"&gt;;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;try&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;            {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;                Monitor.TryEnter(_tasks, ref lockTaken);&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;if&lt;span style="color:black"&gt; (lockTaken) &lt;span style="color:blue"&gt;return&lt;span style="color:black"&gt; _tasks.ToArray();&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;else&lt;span style="color:black"&gt; throw &lt;span style="color:blue"&gt;new&lt;span style="color:black"&gt; NotSupportedException();&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;            }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;finally&lt;span style="color:black"&gt;&#xD;
											&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;            {&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;&#xD;
										&lt;span style="color:blue"&gt;if&lt;span style="color:black"&gt; (lockTaken) Monitor.Exit(_tasks);&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;            }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;        }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;    }&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="background: #dddddd"&gt;&lt;span style="color:black; font-family:Courier New; font-size:10pt"&gt;}&#xD;
&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left: 36pt"&gt;2．初始化TaskScheduler并指定线程数，初始化TaskFactory&#xD;
&lt;/p&gt;&lt;div style="margin-left: 36pt"&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:542px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p style="background: #dddddd"&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:black"&gt;            LimitedConcurrencyLevelTaskScheduler lcts = &lt;span style="color:blue"&gt;new&lt;span style="color:black"&gt; LimitedConcurrencyLevelTaskScheduler(1);&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:black"&gt;            TaskFactory factory = &lt;span style="color:blue"&gt;new&lt;span style="color:black"&gt; TaskFactory(lcts);&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left: 36pt"&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;3．用如下的方法启动新线程：&#xD;
&lt;/p&gt;&lt;div style="margin-left: 36pt"&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:542px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p style="background: #dddddd"&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:black"&gt;            factory.StartNew(()=&amp;gt; &#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:black"&gt;                {&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:black"&gt;&#xD;
										&lt;span style="color:blue"&gt;for&lt;span style="color:black"&gt; (&lt;span style="color:blue"&gt;int&lt;span style="color:black"&gt; i = 0; i &amp;lt; 500; i++)&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:black"&gt;                    {&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:black"&gt;                        Console.Write(&lt;span style="color:maroon"&gt;"{0} on thread {1}"&lt;span style="color:black"&gt;, i, Thread.CurrentThread.ManagedThreadId);&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:black"&gt;                    }&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:black"&gt;                }&#xD;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p style="background: #dddddd"&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color:black"&gt;            );&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left: 36pt"&gt;4．还可以等待所有线程结束后做一些操作：&#xD;
&lt;/p&gt;&lt;div style="margin-left: 36pt"&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:542px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;lcts.Wait();&#xD;
&lt;/p&gt;&lt;p&gt;Console.WriteLine("Execute success!");&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left: 36pt"&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/time-is-life/aggbug/2335715.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2335715.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/time-is-life/archive/2012/02/02/2335692.html</id><title type="text">很好的一款监控web请求的工具，fiddler.</title><summary type="text">所有请求一目了然，又细又准确。	下载地址：http://www.fiddler2.com/fiddler2/</summary><published>2012-02-02T05:54:00Z</published><updated>2012-02-02T05:54:00Z</updated><author><name>今夜太冷</name><uri>http://www.cnblogs.com/time-is-life/</uri></author><link rel="alternate" href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2335692.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2335692.html"/><content type="html">&lt;p&gt;所有请求一目了然，又细又准确。&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/time-is-life/201202/201202021353304018.png" alt=""/&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;下载地址：&#xD;
&lt;/p&gt;&lt;p&gt;http://www.fiddler2.com/fiddler2/&lt;/p&gt;&lt;img src="http://www.cnblogs.com/time-is-life/aggbug/2335692.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2335692.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/time-is-life/archive/2012/02/02/2335668.html</id><title type="text">Xpath特殊应用一例</title><summary type="text">如下的xml代码：&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-16&amp;quot; ?&amp;gt; &amp;lt;WebPart xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XM...</summary><published>2012-02-02T05:48:00Z</published><updated>2012-02-02T05:48:00Z</updated><author><name>今夜太冷</name><uri>http://www.cnblogs.com/time-is-life/</uri></author><link rel="alternate" href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2335668.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2335668.html"/><content type="html">&lt;p&gt;如下的xml代码：&#xD;
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;lt;?&lt;span style="color:#a31515"&gt;xml&lt;span style="color:blue"&gt;&#xD;
										&lt;span style="color:red"&gt;version&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;1.0&lt;/span&gt;"&lt;span style="color:blue"&gt;&#xD;
												&lt;span style="color:red"&gt;encoding&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;utf-16&lt;/span&gt;"&lt;span style="color:blue"&gt; ?&amp;gt;&lt;/span&gt;&#xD;
												&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;lt;&lt;span style="color:#a31515"&gt;WebPart&lt;span style="color:blue"&gt;&#xD;
										&lt;span style="color:red"&gt;xmlns:xsi&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/span&gt;"&lt;span style="color:blue"&gt;&#xD;
												&lt;span style="color:red"&gt;xmlns:xsd&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;"&lt;span style="color:blue"&gt;&#xD;
														&lt;span style="color:red"&gt;xmlns&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;http://schemas.microsoft.com/WebPart/v2&lt;/span&gt;"&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
														&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;Title&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;Events&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;Title&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;FrameType&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;None&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;FrameType&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;Description&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;Use the Events list to post information about meetings, deadlines, and other events related to this area.&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;Description&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;IsIncluded&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;IsIncluded&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;ZoneID&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;MiddleTopZone&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;ZoneID&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;PartOrder&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;1&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;PartOrder&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;FrameState&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;Normal&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;FrameState&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;Height&lt;span style="color:blue"&gt; /&amp;gt;&lt;/span&gt;&#xD;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;Width&lt;span style="color:blue"&gt; /&amp;gt;&lt;/span&gt;&#xD;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;AllowRemove&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;AllowRemove&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;AllowZoneChange&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;AllowZoneChange&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;AllowMinimize&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;AllowMinimize&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;AllowConnect&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;AllowConnect&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;AllowEdit&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;AllowEdit&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;AllowHide&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;AllowHide&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;IsVisible&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;IsVisible&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;DetailLink&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;/Lists/Events&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;DetailLink&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;HelpLink&lt;span style="color:blue"&gt; /&amp;gt;&lt;/span&gt;&#xD;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;HelpMode&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;Modeless&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;HelpMode&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;Dir&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;Default&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;Dir&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#a31515"&gt;PartImageSmall&lt;span style="color:blue"&gt; /&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;lt;/&lt;span style="color:#a31515"&gt;WebPart&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;想获取&lt;span style="color:#a31515; font-family:新宋体; font-size:9pt"&gt;ZoneID&lt;/span&gt;里面的值，用如下的代码：&#xD;
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:590px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:#2b91af"&gt;XmlDocument&lt;/span&gt; xmlDoc = &lt;span style="color:blue"&gt;new&lt;/span&gt;&#xD;
								&lt;span style="color:#2b91af"&gt;XmlDocument&lt;/span&gt;();&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            xmlDoc.LoadXml(strResult);&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:#2b91af"&gt;XmlNamespaceManager&lt;/span&gt; nsmgr = &lt;span style="color:blue"&gt;new&lt;/span&gt;&#xD;
								&lt;span style="color:#2b91af"&gt;XmlNamespaceManager&lt;/span&gt;(xmlDoc.NameTable);&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            nsmgr.AddNamespace(&lt;span style="color:#a31515"&gt;"WebPart"&lt;/span&gt;, &lt;span style="color:#a31515"&gt;"http://schemas.microsoft.com/WebPart/v2"&lt;/span&gt;);&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
								&lt;span style="color:#2b91af"&gt;XmlNode&lt;/span&gt; webPartZoneNode = xmlDoc.DocumentElement.SelectSingleNode(&lt;span style="color:#a31515"&gt;"WebPart:ZoneID"&lt;/span&gt;, nsmgr);&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;其中这两句是精髓：&#xD;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;nsmgr.AddNamespace(&lt;span style="color:#a31515"&gt;"WebPart"&lt;/span&gt;, &lt;span style="color:#a31515"&gt;"http://schemas.microsoft.com/WebPart/v2"&lt;/span&gt;);&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;xmlDoc.DocumentElement.SelectSingleNode(&lt;span style="color:#a31515"&gt;"WebPart:ZoneID"&lt;/span&gt;, nsmgr);&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/time-is-life/aggbug/2335668.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/time-is-life/archive/2012/02/02/2335668.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/time-is-life/archive/2011/05/15/2047031.html</id><title type="text">程序数据层研究(三) NHibernate中的API</title><summary type="text">本篇文章介绍的是NHibernate的各种API及其作用。 下图描述了NHibernate的API在分层架构中的作用，下面将进行详细说明。 NHibernate的接口大致分为四类：1. 被应用程序调用进行基本数据操作(增、删、改、查)的接口。这些接口是应用程序的业务逻辑层和控制层与NHibernate的主要交互点。ISession, ITransaction, IQuery和ICriteria属于...</summary><published>2011-05-15T11:05:00Z</published><updated>2011-05-15T11:05:00Z</updated><author><name>今夜太冷</name><uri>http://www.cnblogs.com/time-is-life/</uri></author><link rel="alternate" href="http://www.cnblogs.com/time-is-life/archive/2011/05/15/2047031.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/time-is-life/archive/2011/05/15/2047031.html"/><content type="html">&lt;p&gt;本篇文章介绍的是NHibernate的各种API及其作用。&lt;/p&gt; &lt;p&gt;下图描述了NHibernate的API在分层架构中的作用，下面将进行详细说明。&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/time-is-life/201105/201105151905114035.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="372" alt="image" src="http://images.cnblogs.com/cnblogs_com/time-is-life/201105/20110515190518734.png" width="506" border="0"&gt;&lt;/a&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;NHibernate的接口大致分为四类：&lt;br&gt;&lt;strong&gt;1.&amp;nbsp; 被应用程序调用进行基本数据操作(增、删、改、查)的接口。&lt;/strong&gt;这些接口是应用程序的业务逻辑层和控制层与NHibernate的主要交互点。ISession, ITransaction, IQuery和ICriteria属于此类。&lt;br&gt;&lt;strong&gt;2. 被应用程序用来配置NHibernate的接口。&lt;/strong&gt;Configuration就属此类。&lt;br&gt;&lt;strong&gt;3. 回调接口。&lt;/strong&gt;应用程序用回调接口来响应NHibernate中触发的事件。这类接口包括Interceptor, ILifecycle和IValidatable等。&lt;br&gt;&lt;strong&gt;4. 用于扩展NHibernate的强大映射功能的接口。&lt;/strong&gt;这类接口通常被应用程序的基础架构来实现。IUserType, ICompositeUserType, 和IIdentifierGenerator属于此类。&lt;/p&gt; &lt;p&gt;NHibernate充分利用.NET中已有的API, 包括ADO.NET和与之对应的ITransaction API，由于ADO.NET提供了针对不同数据库的抽象功能，这就使NHibernate几乎支持所有的数据库。&lt;/p&gt; &lt;p&gt;下面详细介绍NHibernate中的核心接口：&lt;/p&gt; &lt;p&gt;&lt;strong&gt;一、核心接口：&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;1. ISession. &lt;/p&gt; &lt;p&gt;ISession是NHibernate应用程序的主要接口，它提供NHibernate用于查询，更新，存储和删除对象的方法。ISession是轻量级的对象，易于创建和销毁。这一点很重要，因为在NHibernate应用程序中随时都可能需要创建session, 也许每一次页面请求都需要。需要注意的是，NHibernate session不是线程安全的，所以在设计的时候只能同时被一个线程使用。&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NHibernate中session的含义介于传统的connection和transaction之间，可以把它看做与一个工作单元相关的对象的缓存或集合，NHibernate能够检测到这个工作单元中对象的变化。有时，Isession也被称作永久化管理器，因为它也是用于永久化操作的一个接口，比如存取对象。需要注意的是，NHibernate中的session和ASP.NET中的session没有任何关系.&lt;/p&gt; &lt;p&gt;2. ISessionFactory.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 应用程序从ISessionFactory中获取ISession, ISessionFactory不是轻量级的对象，它被用来在多个应用程序线程中共享。通常整个应用程序中只有一个ISessionFactory的实例, 比如可以在应用程序初始化的时候创建。但是如果你的应用程序需要使用NHibernate访问多个数据库，就需要为每一个数据库创建一个ISessionFactory的实例。&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISessionFactory缓存了NHibernate运行过程中创建的SQL语句和其他的映射数据，它还可以放置一个工作单元中读取并且下一次工作单元或者session中可能用到的数据。ISessionFactory也可以用来配置类和集合的映射来使用二级缓存。&lt;/p&gt; &lt;p&gt;3. Configuration接口。&lt;br&gt;Configuration类是用来配置NHibernate的。应用程序用Configuration的实例在ISessionFactory创建前配置映射文件的位置以及设置NHibernate特定的属性。&lt;br&gt;虽然Configuration类在整个NHibernate应用程序中只占很小的一部分，但是它是我们开始用NHibernate时用到的第一个对象。&lt;/p&gt; &lt;p&gt;4. ITransaction接口。&lt;br&gt;这是一个可选接口，NHibernate应用程序可以不使用这个接口，而自己在基础架构代码中管理事务。NHibernate transaction从底层的事务（比如ADO.NET Transaction或者其他的Transaction）中抽象出来应用程序代码，这样应用程序代码就可以通过一系列连贯的客户端API来控制事务的边界，从而使NHibernate应用程序可以在不同的执行环境和容易中实现可移植性。&lt;/p&gt; &lt;p&gt;5. IQuery和ICriteria接口。&lt;br&gt;&amp;nbsp;&amp;nbsp; IQuery接口提供了强大的数据库查询能力，同时可以控制查询如何执行，是NHibernate获取数据的基本接口。查询写成HQL或者数据库原始的SQL语句。IQuery是轻量级的，只能在创建它的ISession内使用。它的作用是：绑定参数，限定查询返回的结果条数，然后执行查询。&lt;br&gt;&amp;nbsp;&amp;nbsp; ICriteria接口是一个与IQuery类似的接口，可以用来创建和执行面向对象的条件查询。&lt;br&gt;&lt;br&gt;&lt;strong&gt;二、回调接口。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;当一个对象发生一个事件(比如这个对象被加载、存储和删除)时，回调接口可以让应用程序收到一个通知。NHibernate应用程序并不需要实现这些事件，但是在执行一些通用的任务的时候它们很有用，比如创建审核记录的时候。&lt;/p&gt; &lt;p&gt;ILifeCycle和IValidatable接口让一个永久化对象能够响应与它的&lt;em&gt;永久化生命周期&lt;/em&gt;相关的事件。永久化生命周期包含在一个对象的CRUD操作中，也就是在这个对象被创建，提取，更新和删除的时候。&lt;br&gt;（注意，NHibernate开发团队当初受其他具有这些接口的ORM解决方案的影响，后来他们意识到让永久化类实现这些NHibernate特定的接口会影响可移植性，所以这两个接口已经过期。）&lt;/p&gt; &lt;p&gt;IInterceptor接口可以让应用程序处理事件，同时又不必实现NHibernate特定的接口。IInterceptor接口的实现以参数的形式传递给永久化实例。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;三、类型。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;NHibernate种类型的概念在架构中是一个基本而有强大的元素。.NET的Type对象将.NET中的类型映射到数据库的列类型（一个类型可能扩展到多个数据表列）。所有永久化类的永久化属性，包括关联在内，都有对应的NHibernate类型。这种设计让NHibernate具有很强的灵活性和可扩展性，因为每一种关系型数据库都有一套NHibernate类型对应。&lt;br&gt;&amp;nbsp;&amp;nbsp; NHibernate包含了丰富的类型，涵盖了.NET基础类和很多CLR的类，包括DateTime, System.Enum, byte[], 和Serializable 类对应的类型。&lt;br&gt;&amp;nbsp;&amp;nbsp; NHibernate还支持用户自定义的类型。IUserType, ICompositeUserType和IParameterizedType这些接口就是用来给我们创建自己的类型用的，我们也可以用IUserCollectionType创建自己的集合类。NHibernate的这个特性，可以让我们很方便而简洁的处理应用程序中用到的类，比如Address,Name和MoneyAccount。自定义类型是NHibernate的一个核心属性，NHibernate团队鼓励我们尽量多并且有创造性的使用它。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;四、扩展接口&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;NHibernate提供的大部分功能都是可配置的，这就允许我们在一些内置策略之间进行选择。当内置的策略足以满足我们的需要时，NHibernate还允许我们通过实现一些接口来插入我们自己的功能实现。插入点包括：&lt;br&gt;1. 主键的生成(IIdentifierGenerator接口)&lt;br&gt;2. SQL语言的支持（Dialect抽象类）&lt;br&gt;3. 缓存策略（ICache和ICacheProvider接口）。&lt;br&gt;4. ADO.NET连接管理(IConnectionProvider接口)。&lt;br&gt;5. 事务管理(ITransactionFactory和ITransaction接口)。&lt;br&gt;6. ORM策略（IClassPersister接口层级）&lt;br&gt;7. 属性访问策略(IPropertyAccessor接口)。&lt;br&gt;8. 代理创建(IProxyFactory接口)。&lt;br&gt;对于上述接口，NHibernate已经带了至少一种实现，所以，如果我们想扩展这些内置的功能，并不需要从头开始。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0080c0"&gt;版权声明：本文原创发表于 &lt;/font&gt;&lt;a href="http://www.cnblogs.com/"&gt;&lt;font color="#0080c0"&gt;博客园&lt;/font&gt;&lt;/a&gt;&lt;font color="#0080c0"&gt;，作者为 &lt;/font&gt;&lt;a href="http://time-is-life.cnblogs.com" target="_blank"&gt;&lt;font color="#0080c0"&gt;今夜太冷&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;font color="#0080c0"&gt;本文版权归作者和博客园共有，欢迎转载，但未经作者同意必须保留此段声明，且在文章页面明显位置给出原文连接，否则视为侵权。&lt;/font&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/time-is-life/aggbug/2047031.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/time-is-life/archive/2011/05/15/2047031.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
