﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-SIMONE-随笔分类-.NET</title><link>http://www.blogjava.net/wangxinsh55/category/19400.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 10 Jan 2008 02:23:04 GMT</lastBuildDate><pubDate>Thu, 10 Jan 2008 02:23:04 GMT</pubDate><ttl>60</ttl><item><title>如何美化你的.net 应用程序</title><link>http://www.blogjava.net/wangxinsh55/archive/2008/01/09/173975.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Wed, 09 Jan 2008 05:08:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2008/01/09/173975.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/173975.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2008/01/09/173975.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/173975.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/173975.html</trackback:ping><description><![CDATA[<p>利用.net技术能够快速开发出应用程序，但是如果应用微软的那一套技术，做出来的程序大多数程序员恐怕都会有一种千篇一律的感觉：按钮还是那个按钮（只是文字不同），文本框还是那个文本框，&nbsp;下拉列表还是那个下拉列表........跟系统里的没有什么两样，不管程序怎么样，至少这个界面没什么新意。</p>
<p>诚然，目前也有不少第三方的控件，如Xceed Ultimate Suite、ComponentOne.Studio、Infragistics.NetAdvantage等等，使用这些控件大多需要再花一定时间去掌握这些控件的用法，而且有些做得不是很好，我曾经见过一个商业控件里面很多是画出来的，不能像VS.net自带的控件那样在IDE上灵活控制，现在给大家展示一个很简单的换皮肤控件，先不说别的，让大家看看效果：<br />
<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zhoufoxcn/SkinMacOS.JPG" /></p>
<p><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zhoufoxcn/SkinMP10.JPG" /></p>
<p><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zhoufoxcn/SkinMSN.JPG" /></p>
<p><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zhoufoxcn/SkinPage.JPG" /></p>
<p><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zhoufoxcn/SkinRealOne.JPG" /></p>
<p><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zhoufoxcn/SkinVista1.JPG" /></p>
<p><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zhoufoxcn/SkinWinXP.JPG" /></p>
<p>看到上面的界面心动了吗？告诉大家，我用的都是VS2005的标准控件，实现换皮肤的功能也仅仅是数行代码而已，也就是说以前熟悉的控件还照常使用。</p>
<p>先介绍一下这套控件吧，这套控件仅有一个dll（IrisSkin2.dll）文件和一个skin文件夹，skin文件夹下共有22个子文件夹，每个子文件夹其实就是一套界面风格，也就是说我们可以使用22种不同风格。</p>
<p>实现给界面换皮肤有两种做法：（一）拷贝法，即使将界面资源夹下所有的文件拷贝到.exe文件所在的位置，然后在程序种通过skinEngine1.SkinFile=fileName(fileName是皮肤文件.ssk文件的位置)来设定界面皮肤，这种做法通常是我们需要在Debug文件夹和Release文件各保存一套皮肤文件，发布程序的时候也需要附带这些文件。（二）嵌入资源法，本文就是采用这种办法实现的，这样做的好处是发布程序时（不管是Debug版本或Release版本）时vs自动将皮肤文件编译进exe文件中，减少程序发布时文件的个数，而且也不用管程序与皮肤文件的相对位置。</p>
<p>首先打开VS工具箱，添加皮肤控件组件，如下图：<br />
<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zhoufoxcn/ToolBoxVs2005.JPG" /></p>
<p>然后在出现的&#8220;选择工具箱项&#8221;中点击&#8220;浏览&#8221;按钮，然后找到IrisSkin2.dll文件，然后&#8220;确定&#8221;，关闭对话窗口之后，皮肤控件组件就会出现在你的工具箱上了（具体出现在哪个分组跟你添加时添加哪个组有关），如下图：<br />
<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zhoufoxcn/ToolBoxVs2005_1.JPG" /></p>
<p><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zhoufoxcn/ToolBoxVs2005_2.JPG" />（我不小心加到打印分组去了，大家不要骂我：P）</p>
<p>好了，现在可以编写程序测试了，做一个简单的窗体吧，界面上的控件如上图所示，然后将皮肤组件拖拽到界面上，之后需要把程序所需要的皮肤资源文件添加进来，这里我是采用添加资源的办法。</p>
<p>步骤如下：<br />
（一）在WinForm工程上右键单击&#8220;属性&#8221;，在出现的界面中点&#8220;资源&#8221;选项卡，把所需的皮肤资源文件添加进来（通过&#8220;添加现有文件&#8221;命令添加皮肤文件），如下图：<br />
<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zhoufoxcn/Skin_Resource_Add.JPG" /></p>
<p>注意如果该皮肤文件夹下除了*.ssk文件之外，还包含有其它图片文件，建议将它们也作为资源添加到项目中。添加完成之后，我们就可以在代码中通过Properties.Resources.文件名来获取这些文件的内容了，通过这个方法返回的是文件内容的二进制数据(byte[]),而skinEngine1.SkinStream需要的是一个Stream对象，通过msdn我们可以以这个二进制数据构建一个Stream对象（new MemoryStream(byte[] bytes)），然后赋值给皮肤组件的SkinStream属性，如果需要换皮肤，重新构建一个皮肤资源文件的Stream对象，然后重新赋值就行了。</p>
<p>界面控件布局代码很简单，就不粘贴了，主要把后台代码放在这里吧（其实也很简单，不过需要注意，因为使用了MemoryStream对象，就需要在程序引用程序集部分添加对IO方面的引用：using System.IO;）</p>
<p>代码如下：<br />
</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Collections.Generic;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.ComponentModel;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Data;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Drawing;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Text;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.IO;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Windows.Forms;<br />
<br />
</span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;SkinForm<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;说明：这是一个简单的WinForm应用程序，用来展示如何使用换皮肤控件来实现我们需要的漂亮界面，代码很简单。<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;作者：周公<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;时间：2008-1-8<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;首发地址：</span><span style="color: #008000; text-decoration: underline">http://blog.csdn.net/zhoufoxcn</span><span style="color: #008000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #808080"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">partial</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;MainForm&nbsp;:&nbsp;Form<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;MemoryStream&nbsp;memoryStream;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;MainForm()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitializeComponent();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetSkinFile(Properties.Resources.MacOS);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;btnOK_Click(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(rbMacOS.Checked)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetSkinFile(Properties.Resources.MacOS);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(rbMP10.Checked)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetSkinFile(Properties.Resources.MP101);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(rbMSN.Checked)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetSkinFile(Properties.Resources.MSN1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(rbPage.Checked)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetSkinFile(Properties.Resources.Page);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(rbRealOne.Checked)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetSkinFile(Properties.Resources.RealOne1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(rbVista1.Checked)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetSkinFile(Properties.Resources.vista1_green1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(rbVista2.Checked)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetSkinFile(Properties.Resources.Vista2_color11);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetSkinFile(Properties.Resources.XPBlue1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;SetSkinFile(</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;bytes)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memoryStream</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MemoryStream(bytes);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">设置皮肤可以通过两种方式，一种是指定皮肤文件的位置,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">如skinEngine1.SkinFile=fileName(fileName是皮肤文件.ssk文件的位置)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">一种是指定皮肤文件的文件流，如本程序所示</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skinEngine1.SkinStream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;memoryStream;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</span></div>
</div>
<p>程序界面效果如上面所示。</p>
<p>本文提到的皮肤组件可以到：<a href="http://download.csdn.net/user/zhoufoxcn/">http://download.csdn.net/user/zhoufoxcn/</a>下载。</p>
<img src ="http://www.blogjava.net/wangxinsh55/aggbug/173975.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2008-01-09 13:08 <a href="http://www.blogjava.net/wangxinsh55/archive/2008/01/09/173975.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#.net模拟提交表单POST</title><link>http://www.blogjava.net/wangxinsh55/archive/2007/06/22/125847.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Fri, 22 Jun 2007 07:18:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2007/06/22/125847.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/125847.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2007/06/22/125847.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/125847.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/125847.html</trackback:ping><description><![CDATA[方法一、<br>System.Net.WebClient WebClientObj&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= new System.Net.WebClient();<br>&nbsp;&nbsp;&nbsp;System.Collections.Specialized.NameValueCollection PostVars&nbsp;&nbsp;= new System.Collections.Specialized.NameValueCollection();<br>&nbsp;&nbsp;&nbsp;PostVars.Add("A1","0");<br>&nbsp;&nbsp;&nbsp;PostVars.Add("A2","0");<br>&nbsp;&nbsp;&nbsp;PostVars.Add("A3","000");
<p>&nbsp;&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;byte[] byRemoteInfo&nbsp;&nbsp;&nbsp;= WebClientObj.UploadValues("http://www.lovezhao.com/vote.asp","POST",PostVars);<br>&nbsp;&nbsp;&nbsp;&nbsp;//下面都没用啦，就上面一句话就可以了<br>&nbsp;&nbsp;&nbsp;&nbsp;string sRemoteInfo&nbsp;&nbsp;&nbsp;= System.Text.Encoding.Default.GetString(byRemoteInfo);&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;//这是获取返回信息<br>&nbsp;&nbsp;&nbsp;&nbsp;richTextBox_instr.Text&nbsp;&nbsp;+= sRemoteInfo;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;catch<br>&nbsp;&nbsp;&nbsp;{}<br></p>
<br><br>方法二、<br>string url = "网址";<br>HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);<br>string s = "要提交的数据";<br>byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes (LoginInfo);<br>req.Method = "POST";<br>req.ContentType = "application/x-www-form-urlencoded";<br>req.ContentLength = requestBytes.Length;<br>Stream requestStream = req.GetRequestStream();<br>requestStream.Write(requestBytes,0,requestBytes.Length);<br>requestStream.Close();<br>HttpWebResponse res = (HttpWebResponse)req.GetResponse();<br>StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default);<br>string backstr = sr.ReadToEnd(); Response.Write(line); sr.Close(); res.Close(); <br>
<img src ="http://www.blogjava.net/wangxinsh55/aggbug/125847.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2007-06-22 15:18 <a href="http://www.blogjava.net/wangxinsh55/archive/2007/06/22/125847.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> C#编写的生成缩略图程序 </title><link>http://www.blogjava.net/wangxinsh55/archive/2007/04/02/107995.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Mon, 02 Apr 2007 07:51:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2007/04/02/107995.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/107995.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2007/04/02/107995.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/107995.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/107995.html</trackback:ping><description><![CDATA[<u><font color=#800080>&nbsp;C#编写的生成缩略图程序<br></font></u>
<p>if(fileupload.PostedFile!=null)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//addto为要添加的属性，aboutfile为文件说明<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string nam = fileupload.PostedFile.FileName ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//取得文件名(抱括路径)里最后一个"."的索引<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int i= nam.LastIndexOf(".");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//取得文件扩展名<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string newext =nam.Substring(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateTime now = DateTime.Now; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string newname=now.DayOfYear.ToString()+fileupload.PostedFile.ContentLength.ToString(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//注意: 我这里用Server.MapPath()取当前文件的相对目录.在asp.net里"\"必须用"\\"代替，把"upload\\"改成"<a href="file://upload//">\\upload\\</a>"就成了取当前文件的绝对目录了<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileupload.PostedFile.SaveAs(Server.MapPath("upload\\"+newname+newext)); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//得到这个文件的相关属性:文件名,文件类型,文件大小<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//fname.Text=myFile.PostedFile.FileName;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//fenc.Text=myFile.PostedFile.ContentType ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//fsize.Text=myFile.PostedFile.ContentLength.ToString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//下面是生成缩略图 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Drawing.Image image,aNewImage;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int width,height,newwidth,newheight;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image=System.Drawing.Image.FromFile(Server.MapPath("upload/"+newname.ToString()+newext.ToString()));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Drawing.Image.GetThumbnailImageAbort callb =new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width=image.Width;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height=image.Height;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(firstpageshow.SelectedValue.ToString()=="1"&amp;&amp;fenlei.SelectedValue.ToString()=="5")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newwidth=203;newheight=86;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newheight=height*newwidth/width;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(isweekman.SelectedValue.ToString()=="1")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newwidth=171;newheight=111;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newheight=height*newwidth/width;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(firstpageshow.SelectedValue.ToString()=="1"&amp;&amp;fenlei.SelectedValue.ToString()=="3")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newwidth=171;newheight=111;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newheight=height*newwidth/width;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newwidth=62;newheight=80;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newheight=height*newwidth/width;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aNewImage=image.GetThumbnailImage(newwidth,newheight,callb,new System.IntPtr());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aNewImage.Save(Server.MapPath("upload\\"+"small_"+newname+newext));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image.Dispose();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//生成缩略图 生成并保存完毕，保存名是在原图名前加了一个small_。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pic="upload/"+newname.ToString()+newext.ToString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;smallpic="upload/small_"+newname.ToString()+newext.ToString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<br>&nbsp;
<img src ="http://www.blogjava.net/wangxinsh55/aggbug/107995.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2007-04-02 15:51 <a href="http://www.blogjava.net/wangxinsh55/archive/2007/04/02/107995.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ASP.NET2.0打通文件图片处理任督二脉</title><link>http://www.blogjava.net/wangxinsh55/archive/2007/04/02/107994.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Mon, 02 Apr 2007 07:49:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2007/04/02/107994.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/107994.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2007/04/02/107994.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/107994.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/107994.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ASP.NET2.0打通文件图片处理任督二脉作者：清清月儿 主页：http://blog.csdn.net/21aspnet/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 时间：2007.4.11.最简单的单文件上传(没花头)2.多文件上传3.客户端检查上传文件类型(以上传图片为例)4.服务器端检查上传文件类型...&nbsp;&nbsp;<a href='http://www.blogjava.net/wangxinsh55/archive/2007/04/02/107994.html'>阅读全文</a><img src ="http://www.blogjava.net/wangxinsh55/aggbug/107994.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2007-04-02 15:49 <a href="http://www.blogjava.net/wangxinsh55/archive/2007/04/02/107994.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Enterprise Library系列文章回顾与总结 </title><link>http://www.blogjava.net/wangxinsh55/archive/2007/03/29/107228.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Thu, 29 Mar 2007 06:46:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2007/03/29/107228.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/107228.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2007/03/29/107228.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/107228.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/107228.html</trackback:ping><description><![CDATA[自<span lang="EN-US">Enterprise Library 1.1 </span>推出以来，<span lang="EN-US">Terry</span>写了一系列的关于<span lang="EN-US">Enterprise Library</span>的文章，其中得到了很多朋友的支持，在这里一并表示感谢。为了方便大家的阅读，这里我做了一下整理与分类。<br /><br /><span lang="EN-US"><?XML:NAMESPACE PREFIX = O /?><o:p></o:p></span><span lang="EN-US"><o:p></o:p></span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 200%"><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体"><strong>第Ⅰ部分：<?XML:NAMESPACE PREFIX = ST1 /?><st1:place w:st="on"><st1:city w:st="on"><span lang="EN-US">Enterprise</span></st1:city></st1:place><span lang="EN-US"> Library 1.1 Step By Step<o:p></o:p></span></strong></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">1</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/10/14/254631.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（一）：配置应用程序块——</span></span><span lang="EN-US"><span lang="EN-US">入门篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">2</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/10/15/255299.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（二）：配置应用程序块——</span></span><span lang="EN-US"><span lang="EN-US">进阶篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">3</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/10/18/257167.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（三）：数据访问程序块——</span></span><span lang="EN-US"><span lang="EN-US">入门篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">4</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/10/21/258961.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（四）：数据访问程序块——</span></span><span lang="EN-US"><span lang="EN-US">进阶篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">5</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/10/25/261414.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（五）：安全应用程序块——</span></span><span lang="EN-US"><span lang="EN-US">入门篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">6</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/10/27/263024.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（六）：安全应用程序块——</span></span><span lang="EN-US"><span lang="EN-US">进阶篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">7</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/11/02/266999.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（七）：日志和监测应用程序块——</span></span><span lang="EN-US"><span lang="EN-US">入门篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">8</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/11/08/271205.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（八）：日志和监测应用程序块——</span></span><span lang="EN-US"><span lang="EN-US">进阶篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">9</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/11/11/273731.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（九）：缓冲应用程序块——</span></span><span lang="EN-US"><span lang="EN-US">入门篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">10</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/11/13/275233.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（十）：缓冲应用程序块——</span></span><span lang="EN-US"><span lang="EN-US">进阶篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">11</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/11/14/275659.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（十一）：异常处理应用程序块——</span></span><span lang="EN-US"><span lang="EN-US">入门篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">12</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/11/16/277557.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（十二）：异常处理应用程序块——</span></span><span lang="EN-US"><span lang="EN-US">进阶篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">13</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/11/29/286688.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（十三）：加密应用程序块——</span></span><span lang="EN-US"><span lang="EN-US">入门篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">14</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/12/01/288576.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（十四）：创建基于消息队列（MSMQ</span></span><span lang="EN-US"><span lang="EN-US">）的异步日志</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">15</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/12/06/291448.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（十五）：配置应用程序块——</span></span><span lang="EN-US"><span lang="EN-US">设计篇</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">16</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2005/12/08/292856.html"><font color="#0066ff">Enterprise Library Step By Step<span lang="EN-US"><span lang="EN-US">系列（十六）：使用AppSetting Application Block</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 200%"><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体"><strong>第Ⅱ部分：<span lang="EN-US">Enterprise Library 2.0 </span>学习<span lang="EN-US"><o:p></o:p></span></strong></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">1</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/03/14/350026.html"><font color="#0066ff">Enterprise Library 2.0<span lang="EN-US"><span lang="EN-US">（1</span></span><span lang="EN-US"><span lang="EN-US">）：Data Access Application Block</span></span><span lang="EN-US"><span lang="EN-US">学习</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd; mso-outline-level: 1"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">2</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/03/22/355923.html"><font color="#0066ff">Enterprise Library 2.0<span lang="EN-US"><span lang="EN-US">（2</span></span><span lang="EN-US"><span lang="EN-US">）：Logging Application Block</span></span><span lang="EN-US"><span lang="EN-US">学习</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">3</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/06/05/Enterprise_Library_Encryption_ConnectionStrings.html"><font color="#0066ff">Enterprise Library 2.0<span lang="EN-US"><span lang="EN-US">中加密数据库连接字符串</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 200%"><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体"><strong>第Ⅲ部分：<span lang="EN-US">Enterprise Library 2.0 </span>技巧<span lang="EN-US"><o:p></o:p></span></strong></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd; mso-outline-level: 1"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">1</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/07/03/enterprise_library2_1.html"><font color="#0066ff">Enterprise Library 2.0 <span lang="EN-US"><span lang="EN-US">技巧（1</span></span><span lang="EN-US"><span lang="EN-US">）：如何使用外部配置文件</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">2</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/07/05/enterprise_library2_2.html"><font color="#0066ff">Enterprise Library 2.0 <span lang="EN-US"><span lang="EN-US">技巧<span lang="EN-US">（2</span></span></span><span lang="EN-US"><span lang="EN-US">）：如何将配置信息保存到数据库中</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">3</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/07/06/enterprise_library2_3.html"><font color="#0066ff">Enterprise Library 2.0 <span lang="EN-US"><span lang="EN-US">技巧（3</span></span><span lang="EN-US"><span lang="EN-US">）：记录ASP.NET</span></span><span lang="EN-US"><span lang="EN-US">站点中未处理的异常</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">4</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/07/08/enterprise_library2_4.html"><font color="#0066ff">Enterprise Library 2.0 <span lang="EN-US"><span lang="EN-US">技巧（4</span></span><span lang="EN-US"><span lang="EN-US">）：如何用编程的方法来配置Logging Application Block</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 200%"><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体"><strong>第Ⅳ部分<span lang="EN-US"> Enterprise Library 2.0 Hands On Lab</span>翻译系列<span lang="EN-US"><o:p></o:p></span></strong></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">1</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/06/Data_Access_Application_Block_HandsOnLab_Part1.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（1</span></span><span lang="EN-US"><span lang="EN-US">）：数据访问程序块（一）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">2</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/06/Data_Access_Application_Block_HandsOnLab_Part2.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（2</span></span><span lang="EN-US"><span lang="EN-US">）：数据访问程序块（二）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">3</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/06/Data_Access_Application_Block_HandsOnLab_Part3.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（3</span></span><span lang="EN-US"><span lang="EN-US">）：数据访问程序块（三）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">4</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/06/Logging_Application_Block_HandsOnLab_Part1.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（4</span></span><span lang="EN-US"><span lang="EN-US">）：日志应用程序块（一）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">5</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/06/Logging_Application_Block_HandsOnLab_Part2.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（5</span></span><span lang="EN-US"><span lang="EN-US">）：日志应用程序块（二）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">6</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/06/Logging_Application_Block_HandsOnLab_Part3.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（6</span></span><span lang="EN-US"><span lang="EN-US">）：日志应用程序块（三）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">7</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/07/Exception_Handling_Application_Block_HandsOnLab_Part1.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（7</span></span><span lang="EN-US"><span lang="EN-US">）：异常应用程序块（一）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">8</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/07/Exception_Handling_Application_Block_HandsOnLab_Part2.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（8</span></span><span lang="EN-US"><span lang="EN-US">）：异常应用程序块（二）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">9</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/09/Caching_Application_Block_handsOnLab_Part1.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（9</span></span><span lang="EN-US"><span lang="EN-US">）：缓存应用程序块（一）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">10</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/09/Caching_Application_Block_HandsOnLab_Part2.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（10</span></span><span lang="EN-US"><span lang="EN-US">）：缓存应用程序块（二）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">11</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/09/Caching_Application_Block_HandsOnLab_Part3.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（11</span></span><span lang="EN-US"><span lang="EN-US">）：缓存应用程序块（三）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">12</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/09/Security_Application_Block_HandsOnLab_Part1.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（12</span></span><span lang="EN-US"><span lang="EN-US">）：安全应用程序块（一）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">13</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/14/Security_Application_Block_HandsOnLab_Part2.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（13</span></span><span lang="EN-US"><span lang="EN-US">）：安全应用程序块（二）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">14</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/16/Cryptography_Application_Block_HandsOnLab_Part1.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（14</span></span><span lang="EN-US"><span lang="EN-US">）：加<span lang="EN-US">密应用程序块（一）</span></span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; LINE-HEIGHT: 200%; mso-para-margin-left: 1.0gd"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">15</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/10/16/Cryptography_Application_Block_HandsOnLab_Part2.html"><font color="#0066ff">Enterprise Library 2.0 Hands On Lab <span lang="EN-US"><span lang="EN-US">翻译（15</span></span><span lang="EN-US"><span lang="EN-US">）：加密应用程序块（二）</span></span></font></a><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 200%"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体"><o:p> </o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 200%"><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体"><strong>第Ⅴ部分<span lang="EN-US"> Enterprise Library 3.0 </span>体验系列<span lang="EN-US"><o:p></o:p></span></strong></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 200%"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体"><span style="mso-tab-count: 1">    </span>1</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/12/24/Enterprise_Library_3_Visual_Studio_Integrated_Configuration_Editor.html"><font color="#0066ff">Enterprise Library 3.0 <span lang="EN-US"><span lang="EN-US">体验（1</span></span><span lang="EN-US"><span lang="EN-US">）：集成VS2005</span></span><span lang="EN-US"><span lang="EN-US">的配置工具和配置区加密支持</span></span></font></a><span style="COLOR: red">New</span></span><span style="COLOR: red">！</span><span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 200%"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体"><span style="mso-tab-count: 1">    </span>2</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2006/12/25/Enterprise_Library_3_Validation_Application_Block.html"><font color="#0066ff">Enterprise Library 3.0 <span lang="EN-US"><span lang="EN-US">体验（2</span></span><span lang="EN-US"><span lang="EN-US">）：使用Validation Application Block</span></span></font></a><span style="COLOR: red">New</span></span><span style="COLOR: red">！</span><span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 200%"><span lang="EN-US" style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体"><span style="mso-tab-count: 1">    </span>3</span><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 200%; FONT-FAMILY: 宋体">．<span lang="EN-US"><a href="http://www.cnblogs.com/Terrylee/archive/2007/01/21/enterprise_library_validation_application_block_part_2.html"><font color="#0066ff">Enterprise Library 3.0 <span lang="EN-US"><span lang="EN-US">体<span lang="EN-US">验（3</span></span></span><span lang="EN-US"><span lang="EN-US">）：使用配置文件的Validation Application Block</span></span></font></a><span style="COLOR: red">New</span></span><span style="COLOR: red">！</span><span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 200%"></p></span><img src ="http://www.blogjava.net/wangxinsh55/aggbug/107228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2007-03-29 14:46 <a href="http://www.blogjava.net/wangxinsh55/archive/2007/03/29/107228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ASP.net 2.0资料吐血收藏 </title><link>http://www.blogjava.net/wangxinsh55/archive/2007/03/16/104138.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Fri, 16 Mar 2007 01:09:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2007/03/16/104138.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/104138.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2007/03/16/104138.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/104138.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/104138.html</trackback:ping><description><![CDATA[
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl00_TitleUrl" href="http://www.cnblogs.com/Clingingboy/archive/2006/07/30/463471.html" target="_blank">asp.net控件开发基础(1)</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl01_TitleUrl" href="http://eddie005.cnblogs.com/archive/2006/07/04/442845.html" target="_blank">GridView模版列嵌套GirdView显示主从表数据</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl02_TitleUrl" href="http://eddie005.cnblogs.com/archive/2006/07/04/GridView_CheckBox.html" target="_blank">GridView中添加一个CheckBox列</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl03_TitleUrl" href="http://epjnpe.cnblogs.com/archive/2006/06/28/434868.html" target="_blank">域环境中安装部署VSTS全过程</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl04_TitleUrl" href="http://linwinfan.cnblogs.com/archive/2006/05/30/412912.html" target="_blank">设置VSS使支持通过Internet访问</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl05_TitleUrl" href="http://blog.csdn.net/wangyihust/archive/2006/05/23/751650.aspx" target="_blank">浅析Microsoft .net PetShop程序中的购物车和订单处理模块（Profile技术，异步MSMQ消息）</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl06_TitleUrl" href="http://pfzhou.cnblogs.com/archive/2006/03/31/363342.html" target="_blank">ASP.NET 2.0 正式版中无刷新页面的开发</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl07_TitleUrl" href="http://weiweictgu.cnblogs.com/archive/2006/03/23/356511.html" target="_blank">ASP.NET 2.0中实现客户端回调的简化版</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl08_TitleUrl" href="http://weiweictgu.cnblogs.com/archive/2006/04/17/377062.html" target="_blank">ASP.NET 2.0 Treeview Checkboxes - Check All - Javascript</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl09_TitleUrl" href="http://zhouruifu.cnblogs.com/archive/2006/04/18/378564.html" target="_blank">ASP.NET 2.0 Language Swithcer and Theme Swicher 多语言转换和多样式主题转换</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl10_TitleUrl" href="http://ltp.cnblogs.com/archive/2006/04/17/377564.html" target="_blank">Microsoft .NET Pet Shop 4 架构与技术分析</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl11_TitleUrl" href="http://cncxz.cnblogs.com/archive/2006/04/13/374736.html" target="_blank">BinaryImage：直接显示以二进制形式存储在数据库中的图片</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl12_TitleUrl" href="http://bearstar.cnblogs.com/archive/2006/04/10/Theme.html" target="_blank">ASP.NET2.0中themes、Skins轻松实现网站换肤！</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl13_TitleUrl" href="http://pfzhou.cnblogs.com/archive/2006/03/31/363342.html" target="_blank">ASP.NET 2.0 正式版中无刷新页面的开发</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl14_TitleUrl" href="http://andyliu.cnblogs.com/archive/2006/03/28/360645.html" target="_blank">Asp.net 2.0 关于Header/title/Meta tages/Style操作的一点小技巧</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl15_TitleUrl" href="http://cleo.cnblogs.com/archive/2006/03/26/359454.html" target="_blank">今天拿到一个TFS Workgroup Edition，想从B3R升级，结果开始了一天的艰难之路。。</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl16_TitleUrl" href="http://cncxz.cnblogs.com/archive/2006/03/22/356210.html" target="_blank">asp.net2.0：扩展ImageButton控件定制自己需要的功能</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl17_TitleUrl" href="http://cwbboy.cnblogs.com/archive/2006/03/22/356017.html" target="_blank">.net 2.0 访问Oracle －－与Sql Server的差异，注意事项，常见异常</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl18_TitleUrl" href="http://activer.cnblogs.com/archive/2006/03/16/351274.html" target="_blank">ASP.NET 2.0中的跨页面提交</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl19_TitleUrl" href="http://jackyrong.cnblogs.com/archive/2006/03/16/351041.html" target="_blank">ASP.NET 2.0中使用multiview控件</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl20_TitleUrl" href="http://shanyou.cnblogs.com/archive/2006/03/15/350899.html" target="_blank">Asp.net 2.0的异常处理需要考虑的问题</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl21_TitleUrl" href="http://zhhui.cnblogs.com/archive/2006/03/15/350754.html" target="_blank">ASP.NET 2.0 Personal Web Site Starter Kit　主题的动态切换（增加八种主题）</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl22_TitleUrl" href="http://kk2000.cnblogs.com/archive/2006/03/03/341708.html" target="_blank">如何在DotNet 2的登录组件中检索用户的锁定状态及解锁？</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl23_TitleUrl" href="http://mqingqing123.cnblogs.com/archive/2005/12/14/296702.html" target="_blank">IIS和ASP.NET2.0</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl24_TitleUrl" href="http://mqingqing123.cnblogs.com/archive/2006/03/03/341726.html" target="_blank">ASP.NET2.0 HiddenField控件</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl25_TitleUrl" href="http://jackyrong.cnblogs.com/archive/2006/02/06/326153.html" target="_blank">asp.net 2.0中新增的web.config的默认namespace功能</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl26_TitleUrl" href="http://pantian.cnblogs.com/archive/2006/03/02/341453.html" target="_blank">在asp.net 2.0中使用CuteEditor 5.0的一个注意事项</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl27_TitleUrl" href="http://teddyma.cnblogs.com/archive/2006/02/27/338917.html" target="_blank">ASP.NET: Custom AutoCompleteTextBox WebControl [With Source Code]</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl28_TitleUrl" href="http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASP2memroleman.mspx" target="_blank">使用 IIS 进行 Microsoft ASP.NET 2.0 成员/角色管理</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl29_TitleUrl" href="http://blog.csdn.net/downmoon/archive/2006/02/15/599845.aspx" target="_self">Visual Studio 2005 的 101 个示例 --MSDN </a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl30_TitleUrl" href="http://blog.csdn.net/downmoon/archive/2006/01/22/585951.aspx" target="_self">vs2003 和vs2005下的发送SMTP邮件 （downmoon原创） </a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl31_TitleUrl" href="http://dudu.cnblogs.com/archive/2006/02/18/333115.html" target="_blank">将博客园程序从Visual Studio 2003迁移到Visual Studio 2005的尝试</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl32_TitleUrl" href="http://freeliver54.cnblogs.com/archive/2006/02/09/327853.html" target="_blank">VS2005中GridView簡單應用</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl33_TitleUrl" href="http://andrewbao.cnblogs.com/archive/2006/01/05/311721.html" target="_blank">VS2005中通过code snippet定制类模板</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl34_TitleUrl" href="http://andrewbao.cnblogs.com/archive/2005/01/28/98878.html" target="_blank">创建自定义的Visual Studio项模板</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl35_TitleUrl" href="http://andrewbao.cnblogs.com/archive/2006/01/05/311721.html" target="_blank">VS2005中通过code snippet定制类模板</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl36_TitleUrl" href="http://didasoft.cnblogs.com/archive/2005/12/30/308311.html" target="_blank">配置VSS2005的Internet访问</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl37_TitleUrl" href="http://xuzs.cnblogs.com/archive/2005/12/27/306062.html" target="_blank">VS.NET2005中的WEBPART初步(二) </a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl38_TitleUrl" href="http://flier.cnblogs.com/archive/2005/12/27/305233.html" target="_blank">ASP.NET 2.0 异步页面原理浅析 [1]</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl39_TitleUrl" href="http://myth.cnblogs.com/archive/2005/12/26/304864.html" target="_blank">自动填写版权信息</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl40_TitleUrl" href="http://zmsx.cnblogs.com/archive/2005/12/21/301994.html" target="_blank">关于Web Part 通讯</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl41_TitleUrl" href="http://shanyou.cnblogs.com/archive/2005/11/25/284247.html" target="_blank">Net Framework 2.0 事务处理</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl42_TitleUrl" href="http://shanyou.cnblogs.com/archive/2005/12/03/290125.html" target="_blank">Asp.net 2.0 WebPart使用经验点滴</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl43_TitleUrl" href="http://shanyou.cnblogs.com/archive/2005/12/22/302936.html" target="_blank">GridView控件使用经验</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl44_TitleUrl" href="http://jackielin.cnblogs.com/archive/2005/12/16/298190.html" target="_blank">在MastPage中引用脚本资源</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl45_TitleUrl" href="http://caomao.cnblogs.com/archive/2005/12/09/293591.html" target="_blank">提供一种简单、直观、简单、可扩展的MasterPage方案</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl46_TitleUrl" href="http://ipointer.cnblogs.com/archive/2005/12/06/291825.html" target="_blank">Enterprise Library2.0研究（二）日志组件的开发说明</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl47_TitleUrl" href="http://lovecherry.cnblogs.com/archive/2005/12/05/291092.html" target="_blank">（翻译）怎么在ASP.NET 2.0中使用Membership</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl48_TitleUrl" href="http://ipointer.cnblogs.com/archive/2005/12/05/291116.html" target="_blank">Enterprise Library2.0研究（一）日志组件的使用场景</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl49_TitleUrl" href="http://wdxinren.cnblogs.com/archive/2005/12/03/289956.html" target="_blank">VC# 2005 Screen Starter kit里的Rss处理类分析</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl50_TitleUrl" href="http://xrinehart.cnblogs.com/archive/2005/12/03/289978.html" target="_blank">革新：.NET 2.0的自定义配置文件体系初探</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl51_TitleUrl" href="http://chwkai.cnblogs.com/archive/2005/11/27/285317.html" target="_blank">Asp.net网站的ClickOnce自动部署（3）－虚拟目录的配置</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl52_TitleUrl" href="http://wdxinren.cnblogs.com/archive/2005/07/12/191652.html" target="_blank">C#2.0介绍之Iterators(迭代器)</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl53_TitleUrl" href="http://tonyqus.cnblogs.com/archive/2005/12/02/288886.html" target="_blank">ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf部署</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl54_TitleUrl" href="http://chinesewind.cnblogs.com/archive/2005/11/30/287957.html" target="_blank">DataTable中数据记录的统计</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl55_TitleUrl" href="http://sharpedge.cnblogs.com/archive/2005/12/01/288276.html" target="_blank">.NET配置文件解析过程详解</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl56_TitleUrl" href="http://welfare.cnblogs.com/archive/2005/11/30/287945.html" target="_blank">C# 2.0——匿名方法、迭代程序和局部类</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl57_TitleUrl" href="http://jackielin.cnblogs.com/archive/2005/11/29/286570.html" target="_blank">在自定义Server Control中捆绑JS文件 Step by Step</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl58_TitleUrl" href="http://andywu.cnblogs.com/archive/2005/11/28/286521.html" target="_blank">正式发布表达式计算引擎WfcExp V0.9(附源码)</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl59_TitleUrl" href="http://tishifu.cnblogs.com/archive/2005/11/29/286546.html" target="_blank">关于无aspx文件部署，我的一些探索心得</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl60_TitleUrl" href="http://teddyma.cnblogs.com/archive/2005/11/28/286196.html" target="_blank">深度解析Asp.Net2.0中的Callback机制</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl61_TitleUrl" href="http://jackielin.cnblogs.com/archive/2005/11/25/284626.html" target="_blank">Server Side ViewState 在服务器端存贮ViewState (ASP.NET 2.0)</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl62_TitleUrl" href="http://dudu.cnblogs.com/archive/2005/10/21/259328.html" target="_blank">解读System.Web.UI.Page中关键方法ProcessRequestMain()</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl63_TitleUrl" href="http://birdshome.cnblogs.com/archive/2004/12/19/79309.html" target="_blank">使用ASP.NET 2.0提供的WebResource管理资源</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl64_TitleUrl" href="http://jackyrong.cnblogs.com/archive/2005/09/21/241446.html" target="_blank">ASP.NET 2.0中使用自定义provider （2）</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl65_TitleUrl" href="http://hardrock.cnblogs.com/archive/2005/09/27/245255.html" target="_blank">转全角半角(C#，VB.NET)</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl66_TitleUrl" href="http://zhenyulu.cnblogs.com/articles/25326.html" target="_blank">小议数据库主键选取策略（原创）</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl67_TitleUrl" href="http://teddyma.cnblogs.com/archive/2005/10/25/261546.html" target="_blank">让人哭笑不得的“Unable to load one or more of the types in the assembly”问题的解决！</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl68_TitleUrl" href="http://pvistely.cnblogs.com/archive/2005/09/20/240054.html" target="_blank">继上次的GDI+做报表设计器后.............</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl69_TitleUrl" href="http://jackyrong.cnblogs.com/archive/2005/11/15/277119.html" target="_blank">Visual Studio 2005中编译调试新功能</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl70_TitleUrl" href="http://idior.cnblogs.com/archive/2005/08/15/214300.html" target="_blank">Transaction in ADO.net 2.0</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl71_TitleUrl" href="http://allenlooplee.cnblogs.com/archive/2005/08/16/216398.html" target="_blank">.NET v2.0 下的高精度计数器 —— Stopwatch [.NET v2.0, C#]</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl72_TitleUrl" href="http://idior.cnblogs.com/archive/2005/07/25/199946.html" target="_blank">.Net2.0 的新线程 ParameterizedThreadStart &amp;BackgroundWorker</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl73_TitleUrl" href="http://skyivben.cnblogs.com/archive/2005/09/17/238828.html" target="_blank">使用C#2.0进行文件压缩和解压</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl74_TitleUrl" href="http://nic.cnblogs.com/archive/2005/08/25/222277.html" target="_blank">在C#中使用Nullable类型</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl75_TitleUrl" href="http://pwqzc.cnblogs.com/archive/2005/11/25/284225.html" target="_blank">net2.0自定义注册控件</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl76_TitleUrl" href="http://shanyou.cnblogs.com/archive/2005/11/25/284247.html" target="_blank">Net Framework 2.0 事务处理</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl77_TitleUrl" href="http://quitgame.cnblogs.com/archive/2005/11/24/283910.html" target="_blank">体验.net2.0的优雅（3） -- 为您的 SiteMap 添加 控制转发功能</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl78_TitleUrl" href="http://hyphappy.cnblogs.com/archive/2005/11/24/283694.html" target="_blank">Composite UI Application Block学习笔记之Smart Part</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl79_TitleUrl" href="http://xrinehart.cnblogs.com/archive/2005/11/17/278207.html" target="_blank">为ASP.NET 2.0配置数据源</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl80_TitleUrl" href="http://quitgame.cnblogs.com/archive/2005/11/22/282181.html" target="_blank">体验 .net2.0 的优雅（2） -- ASP.net 主题和皮肤 </a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl81_TitleUrl" href="http://vitoriatang.cnblogs.com/archive/2005/11/22/282201.html" target="_blank">InternalsVisibleToAttribute，友元程序集访问属性</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl82_TitleUrl" href="http://fineboy.cnblogs.com/archive/2005/11/22/281998.html" target="_blank">NUnit实践的之路</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl83_TitleUrl" href="http://ly4cn.cnblogs.com/archive/2005/11/03/267832.html" target="_blank">.NET20 一种简单的窗口控件UI状态控制方法</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl84_TitleUrl" href="http://pwqzc.cnblogs.com/archive/2005/11/10/273277.html" target="_blank">Asp.Net2.0无刷新客户端回调</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl85_TitleUrl" href="http://blog.joycode.com/liuhuimiao/articles/50507.aspx" target="_self">ASP.NET2.0 新增控件(1)——ImageMap </a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl86_TitleUrl" href="http://jackyrong.cnblogs.com/archive/2005/09/02/228533.html" target="_blank">在asp.net 2.0中使用自定义的provider</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl87_TitleUrl" href="http://jackyrong.cnblogs.com/archive/2005/09/21/241446.html" target="_blank">ASP.NET 2.0中使用自定义provider （2）</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl88_TitleUrl" href="http://jackyrong.cnblogs.com/archive/2005/08/29/225521.html" target="_blank">在asp.net 2.0中使用SqlBulkCopy类迁移数据</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl89_TitleUrl" href="http://jackyrong.cnblogs.com/archive/2005/08/30/226412.html" target="_blank">使用asp.net 2.0和SQL SERVER 2005构建多层应用 </a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl90_TitleUrl" href="http://jackyrong.cnblogs.com/archive/2005/10/07/249719.html" target="_blank">asp.net 2.0中利用app_offline.htm功能</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl91_TitleUrl" href="http://jackyrong.cnblogs.com/archive/2005/11/15/277119.html" target="_blank">Visual Studio 2005中编译调试新功能</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl92_TitleUrl" href="http://jackyrong.cnblogs.com/archive/2005/11/09/272052.html" target="_blank">asp.net 2.0中扩展login控件</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl93_TitleUrl" href="http://hyphappy.cnblogs.com/archive/2005/11/17/278170.html" target="_blank">Composite UI Application Block学习笔记之Event Broker</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl94_TitleUrl" href="http://deepcast.cnblogs.com/archive/2005/08/02/205922.html" target="_blank">ASP.NET 2.0 QuickStart Tutorial--asp.net 2.0的速成教程</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl95_TitleUrl" href="http://luna.cnblogs.com/archive/2005/11/15/277214.html" target="_blank">VS2005 Web工程模版ClubSite中相册薄的一处BUG？</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl96_TitleUrl" href="http://jackyrong.cnblogs.com/archive/2005/11/15/277119.html" target="_blank">Visual Studio 2005中编译调试新功能</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl97_TitleUrl" href="http://sense.cnblogs.com/archive/2005/11/13/275339.html" target="_blank">使用ASP.NET 2.0 的一些问题！</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl98_TitleUrl" href="http://pwqzc.cnblogs.com/archive/2005/10/03/248345.html" target="_blank">使用　.net 2.0 中 linkLabel 控件要注意的一点</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl99_TitleUrl" href="http://pwqzc.cnblogs.com/archive/2005/11/10/273277.html" target="_blank">Asp.Net2.0无刷新客户端回调</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl100_TitleUrl" href="http://netufo.cnblogs.com/archive/2005/11/01/266283.html" target="_blank">为 asp.net 2.0 的菜单控件增加 target 属性</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl101_TitleUrl" href="http://waxdoll.cnblogs.com/archive/2005/04/03/131146.html" target="_blank">ASP.Net 2.0 MasterPage中路径的处理</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl102_TitleUrl" href="http://firmwolf.cnblogs.com/archive/2005/08/04/207062.html" target="_blank">SQL Server 2005中设置Reporting Services发布web报表的匿名访问</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl103_TitleUrl" href="http://tansm.cnblogs.com/archive/2005/11/01/266563.html" target="_blank">让你的控件属性注释支持多语言</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl104_TitleUrl" href="http://netufo.cnblogs.com/archive/2005/11/01/266283.html" target="_self">为 asp.net 2.0 的菜单控件增加 target 属性 </a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl105_TitleUrl" href="http://hedonister.cnblogs.com/category/36006.html" target="_self">发布一个原创的基于Ajax的通用(组合)查询 </a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl106_TitleUrl" href="http://interma.cnblogs.com/archive/2005/10/21/259524.html" target="_blank">试用VS2005中的Performance Tools</a>
				</h5>
		</div>
		<div class="post">
				<h5>
						<a id="FavoriteList1_Favorites_ctl107_TitleUrl" href="http://tonyqus.cnblogs.com/archive/2005/10/22/260000.html" target="_self">中文转换为完整拼音算法原理分析</a>
				</h5>
		</div>
<img src ="http://www.blogjava.net/wangxinsh55/aggbug/104138.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2007-03-16 09:09 <a href="http://www.blogjava.net/wangxinsh55/archive/2007/03/16/104138.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>aspjpeg组件安装使用</title><link>http://www.blogjava.net/wangxinsh55/archive/2007/02/26/100751.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Mon, 26 Feb 2007 07:47:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2007/02/26/100751.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/100751.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2007/02/26/100751.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/100751.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/100751.html</trackback:ping><description><![CDATA[
		<div class="cnt">
				<p>安装提示输入序列号，没有则保留空，我暂时随便输入12345-67890-12345，先看一下他的dll能不能像aspjpeg1.3那样直接使用。安装提示重起iis服务，选否，注册组件一般不需要重起</p>
				<p>如果以前装过其他版本的aspjpeg，需要先停止iis(net stop iisadmin /y)，卸载原来的组件(regsvr32 /u c:/windows/system32/aspjpeg.dll)，然后重起iis(net start w3svc)</p>
				<p>//By xlxcn 从这里开始,</p>
				<p>从aspjpeg1.5的安装目录复制aspjpeg.dll到系统文件加的system32目录</p>
				<p>运行regsvr32 c:/windows/system32/aspjpeg.dll （根据你的系统改你的目录）</p>
				<p>aspjpeg的文档中说需要官方提供的序列号才能正常使用，如果安装过程中有输入序列号</p>
				<p>在asp中运行下面的命令更改序列号（如果没有输入过，需要在注册表中添加如下项：HKEY_LOCAL_MACHINE\Software\Persits Software\AspJpeg\RegKey）</p>
				<p>Set Jpeg = Server.CreateObject("Persits.Jpeg")<br />Jpeg.RegKey = "你的序列号"<br />可以用下面的方式查看是否注册成功：</p>
				<p>Set Jpeg = Server.CreateObject("Persits.Jpeg")<br />Response.Write Jpeg.Expires <br />我没有注册，运行了这则代码，得到的结果是2005-1-19 19:15:49。意思好像是可以使用到1月19日。</p>
				<p>如果注册成功得到的应该是9/9/9999。我用48958-77556-02411注册以后得到了9999-9-9这个结果:)操作系统时间显示方式有所不同。</p>
				<p>以下是aspjpeg1.5的安装文件，dll文件和序列号</p>
				<p>直接安装只要在aspjpeg1.5.exe安装过程中输入序列号即可，但是可能会出现ntfs目录访问权限的问题，需要手动设置安装目录对Everyone有访问权限。</p>
				<p>如果用aspjpeg.dll，请按照上面的方法安装以及添加注册表项。</p>
				<p>
						<br />aspjpeg高级使用方法介绍</p>
				<p>aspjpeg是一款非常强大的图片处理组件，纯英文版本。不过早已经有免费版和破解版，但是对其进行详细与深入介绍的文章却是不多，即使有也只牵涉到图片缩略和图片水印。可能是因为纯英文的缘故。</p>
				<p>
						<br />这里我就是针对这些问题谈谈aspjpeg的高级用法。这里的技术主要包括： <br />图片缩略 <br />图片水印 <br />安全码技术 <br />图片切割 <br />图片合并 <br />数据库支持 <br />更多不常用的方法介绍 <br />以及相关的一些实用技术 </p>
				<p>
						<br />aspjpeg唯一点不足的就是输出方式比较单一。在这里，我们主要谈将图片处理保存后再调用的这种输出方法。另外，本人比较懒，所以有些代码仍然引用于原文档，不懂的地方偶会加以解释！ </p>
				<p>
						<br />学过vb或者.net的同志肯定一看就明白了。刷子来着。呵呵。 </p>
				<p>
						<br />一、图片缩略 </p>
				<p>&lt;% <br />Set Jpeg = Server.CreateObject("Persits.Jpeg") 调用组件 <br />Path = Server.MapPath("images") &amp; "\clock.jpg" 待处理图片路径 <br />Jpeg.Open Path 打开图片 <br />高与宽为原图片的1/2 <br />Jpeg.Width = Jpeg.OriginalWidth / 2 <br />Jpeg.Height = Jpeg.OriginalHeight / 2 <br />保存图片 <br />Jpeg.Save Server.MapPath("images") &amp; "\clock_small.jpg" <br />%&gt; <br />&lt;IMG src="http://www.blogjava.net/images/clock_small.jpg"&gt; 查看处理的图片 </p>
				<p> </p>
				<p>二、图片水印 </p>
				<p>&lt;% <br />Set Jpeg = Server.CreateObject("Persits.Jpeg") <br />Jpeg.Open Server.MapPath("images/dodge_viper.jpg") <br />开始写文字 <br />Jpeg.Canvas.Font.Color = &amp;000000' red 颜色 <br />Jpeg.Canvas.Font.Family = "Courier New" 字体 <br />Jpeg.Canvas.Font.Bold = True 是否加粗 <br />Jpeg.Canvas.Print 10, 10, "Copyright (c) XYZ, Inc." <br />打印坐标x 打印坐标y 需要打印的字符 <br />以下是对图片进行边框处理 <br />Jpeg.Canvas.Pen.Color = &amp;H000000' black 颜色 <br />Jpeg.Canvas.Pen.Width = 2 画笔宽度 <br />Jpeg.Canvas.Brush.Solid = False 是否加粗处理 <br />Jpeg.Canvas.Bar 1, 1, Jpeg.Width, Jpeg.Height <br />起始X坐标 起始Y坐标 输入长度 输入高度 <br />Jpeg.Save Server.MapPath("images/dodge_viper_framed.jpg") 保存 <br />%&gt; </p>
				<p> </p>
				<p>三、安全码 </p>
				<p>安全玛的道理和加水印差不多，很多朋友问我要具体的代码技术，在这里我就写出来和大家分享，一般人我还不告诉他。呵呵。 <br />&lt;% <br />生成安全码的函数 <br />function make_randomize(max_len,w_n) max_len 生成长度，w_n：0 可能包含字母，1：只为数字 <br />randomize <br />for intcounter=1 to max_len <br />whatnext=int((1-0+1)*rnd+w_n) <br />if whatnext=0 then <br />upper=122 <br />lower=97 <br />else <br />upper=57 <br />lower=48 <br />end if <br />strnewpass=strnewpass &amp; chr(int((upper-lower+1)*rnd)+lower) <br />next <br />make_randomize=strnewpass <br />end function <br />%&gt; </p>
				<p>生成安全码的图片。当然你要预先准备一张背景图哦 </p>
				<p>&lt;%random_num=make_randomize(4,1) 生成4位数字的安全码 <br />session("random_num")=random_num 为什么调用session，没有session的安全码是完全没有意义的。呵呵 </p>
				<p>Set Jpeg = Server.CreateObject("Persits.Jpeg") 调用组件 <br />Jpeg.Open Server.MapPath("infos/random_pic/random_index.gif") 打开准备的图片 <br />Jpeg.Canvas.Font.Color = &amp;H006699 <br />Jpeg.Canvas.Font.Family = "Arial Black" <br />Jpeg.Canvas.Font.Bold = false <br />Jpeg.Canvas.PrintText 0, -2, random_num <br />jpeg.save Server.MapPath("infos/random_pic/random_index.bmp") 保存 <br />%&gt; &lt;img src="/infos/random_pic/random_index.bmp" border="0" align="absmiddle"&gt; <br />自己做做看。呵呵。 </p>
				<p> </p>
				<p>
						<br />四、图片切割 </p>
				<p>一直以来，对aspjpeg不了解的人以为是无法用它来进行切割的。 <br />其实有这样的一个方法的 <br />crop x1,y1,x2,y2 <br />切割长方型左上角x坐标，y坐标 右下角x坐标 y坐标 <br />下面我就做一个演示哈 <br />Set Jpeg = Server.CreateObject("Persits.Jpeg") <br />jpeg.open server.MapPath("/pic/1.gif") <br />jpeg.width=70 <br />Jpeg.Height = Jpeg.OriginalHeight*70 / jpeg.Originawidth <br />jpeg.crop 0,0,70,52 开始切割其实是把超过52象素的下部分去掉 <br />jpeg.save server.MapPath("/temp_pic/small_1.gif") 保存 <br />怎么样，很简单吧 </p>
				<p> </p>
				<p>五、图片合并 </p>
				<p>我们这里是要把logo图片加到dodge_viper.jpg图片上去 <br />其实，图片合并的方法也可以用来动态打水印哦 <br />Set Photo = Server.CreateObject("Persits.Jpeg") <br />PhotoPath = Server.MapPath("images") &amp; "\dodge_viper.jpg" <br />Photo.Open PhotoPath <br />Set Logo = Server.CreateObject("Persits.Jpeg") <br />LogoPath = Server.MapPath("images") &amp; "\clock.jpg" <br />Logo.Open LogoPath </p>
				<p>Logo.Width = 70 <br />Logo.Height = Logo.Width * Logo.OriginalHeight / Logo.OriginalWidth </p>
				<p>Photo.DrawImage 0, 0, Logo </p>
				<p>Photo.SendBinary 这里用了sendBinary的输出方法。当然，你也可以先保存更改后的dodge_viper.jpg，再输入也可以。我个人不大喜欢用sendBinary方法，在网速慢的时候容易出错。在速度方面也不怎样。呵呵。 </p>
				<p> </p>
				<p>六、数据库支持 </p>
				<p>这里不多说了。其实就是Binary方法，大家知道图片存进数据库只能存为二进制的文件的。所以代码就懒的写了。 </p>
				<p> </p>
				<p>七、更多方法介绍 </p>
				<p>Canvas.Line(Left, Top, Right, Bottom) <br />画一条直线 <br />Canvas.Ellipse(Left, Top, Right, Bottom) <br />画出一个椭圆 <br />Canvas.Circle(X, Y, Radius) <br />画出一个圆 <br />Canvas.Bar(Left, Top, Right, Bottom) <br />画出一个长方形，上面有代码介绍了 <br />Canvas.Font.ShadowColor <br />文字阴影颜色 <br />Canvas.Font.ShadowXOffset As Long <br />阴影X坐标设定 <br />Canvas.Font.ShadowYOffset As Long <br />Y坐标设定 <br />Canvas.Font.BkMode As String <br />文字背景 </p>
		</div>
		<br />
<img src ="http://www.blogjava.net/wangxinsh55/aggbug/100751.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2007-02-26 15:47 <a href="http://www.blogjava.net/wangxinsh55/archive/2007/02/26/100751.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个大家不常用到，却很有用的页面间传值方法</title><link>http://www.blogjava.net/wangxinsh55/archive/2007/02/09/98898.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Fri, 09 Feb 2007 00:58:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2007/02/09/98898.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/98898.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2007/02/09/98898.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/98898.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/98898.html</trackback:ping><description><![CDATA[
		<p>一、目前在ASP.NET中页面传值共有这么几种方式：<br />1、表单提交，<br />   &lt;form action= "target.aspx" method = "post" name = "form1"&gt;<br /> &lt;input name = "param1" value = "1111"/&gt;<br /> &lt;input name = "param2" value = "2222"/&gt; <br />   &lt;/form&gt;<br />   ....<br />   form1.submit();<br />   ....<br />   此种方在ASP。NET中无效，因为ASP。NET的表单总是提交到自身页面，如果要提交到别一页面，需要特殊处理。<br />2、&lt;A href="target.aspx?param1=1111&amp;param2=2222"&gt;链接地址传送&lt;/A&gt;<br />接收页面： string str = Request["param1"]<br />3、Session共享<br />发送页面：Session("param1") = "1111";  <br />按收页面  string str = Session("param1").ToString();  <br />4、Application共享<br />发送页面： Application("param1") = "1111";   <br />按收页面： string str = Application("param1").ToString();  <br />此种方法不常使用，因为Application在一个应用程序域范围共享，所有用户可以改变及设置其值，故只应用计数器等需要全局变量的地方。<br />5、Cookie<br />6、Response.Redirect()方式<br />   Response.Redirect("target.aspx?param1=1111&amp;param2=2222")<br />   接收页面： string str = Request["param1"]<br />7、Server.Transfer()方式。<br />   Server.Transfer("target.aspx?param1=1111&amp;param2=2222")<br />   接收页面： string str = Request["param1"]</p>
		<p>二、如果在两个页面间需要大量的参数要传传递，如数据查询等页面时，用1 － 6的方法传值及其不便，而第 7 种方法确有一独特的优势！但使用该方法时需要一定的设置，现简单介绍一下该方法的使用方式：<br />   以查询数据页面为例：<br />   在查询页面中设置如下公有属性(QueryPage.aspx)：<br />    public class QueryPage : System.Web.UI.Page<br />{<br />protected System.Web.UI.WebControls.TextBox txtStaDate;<br />protected System.Web.UI.WebControls.TextBox txtEndDate;<br />   ...<br />/// &lt;summary&gt;<br />/// 开始时间<br />/// &lt;/summary&gt;<br />public string StaDate<br />{<br />get{ return this.txtStaDate.Text;}<br />set{this.txtStaDate.Text = value;}<br />}<br />/// &lt;summary&gt;<br />/// 结束时间<br />/// &lt;/summary&gt;<br />public string EndDate<br />{<br />get{ return this.txtEndDate.Text;}<br />set{this.txtEndDate.Text = value;}<br />}<br />....<br />private void btnEnter_Click(object sender, System.EventArgs e)<br />{<br />Server.Transfer("ResultPage.aspx");<br />}<br />}<br />   <br />   在显示查询结果页面(ResultPage.aspx)：<br />    public class ResultPage : System.Web.UI.Page<br />{<br />   private void Page_Load(object sender, System.EventArgs e)<br />   {</p>
		<p>//转换一下即可获得前一页面中输入的数据<br />QueryPage queryPage = ( QueryPage )Context.Handler;</p>
		<p>Response.Write( "StaDate：" );<br />Response.Write( queryPage.StaDate );<br />Response.Write( "&lt;br/&gt;EndDate：" );<br />Response.Write( queryPage.EndDate );<br />  }<br />}</p>
		<p>三、如果有许多查询页面共用一个结果页面的设置方法：<br />    在这种方式中关键在于“ QueryPage queryPage = ( QueryPage )Context.Handler; ”的转换，只有转换不依赖于特定的页面时即可实现。<br />如果让所有的查询页面都继承一个接口，在该接口中定义一个方法，该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作！</p>
		<p>1、先定义一个类，用该类放置所有查询参数：<br />/// &lt;summary&gt;<br />/// 结果页面中要用到的值<br />/// &lt;/summary&gt;<br />public class QueryParams<br />{<br />private string staDate;<br />private string endDate;</p>
		<p>/// &lt;summary&gt;<br />/// 开始时间<br />/// &lt;/summary&gt;<br />public string StaDate<br />{<br />get{ return this.staDate;}<br />set{this.staDate = value;}<br />}<br />/// &lt;summary&gt;<br />/// 结束时间<br />/// &lt;/summary&gt;<br />public string EndDate<br />{<br />get{ return this.endDate;}<br />set{this.endDate = value;}<br />}<br />}</p>
		<p>2、接口定义：<br />/// &lt;summary&gt;<br />/// 定义查询接口。<br />/// &lt;/summary&gt;<br />public interface IQueryParams<br />{<br />/// &lt;summary&gt;<br />/// 参数<br />/// &lt;/summary&gt;<br />QueryParams Parameters{get;}<br />}</p>
		<p>3、查询页面继承IQueryParams接口(QueryPage.aspx)：<br />    <br />/// &lt;summary&gt;<br />///查询页面，继承接口<br />/// &lt;/summary&gt;<br />public class QueryPage : System.Web.UI.Page, IQueryParams<br />{<br />protected System.Web.UI.WebControls.TextBox txtStaDate;<br />protected System.Web.UI.WebControls.TextBox txtEndDate;</p>
		<p>private QueryParams queryParams;<br />   ...<br />/// &lt;summary&gt;<br />/// 结果页面用到的参数<br />/// &lt;/summary&gt;<br />   public QueryParams Parameters<br />{<br />get<br />{<br />return queryParams;<br />}<br />}<br />....<br />private void btnEnter_Click(object sender, System.EventArgs e)<br />{<br />//赋值<br />queryParams = new QueryParams();<br />queryParams.StaDate = this.txtStaDate.Text;<br />queryParams.EndDate = this.txtEndDate.Text</p>
		<p>Server.Transfer("ResultPage.aspx");<br />}<br />}<br />4、别外的页面也如此设置<br />5、接收页面(ResultPage.aspx)：<br />   <br />public class ResultPage : System.Web.UI.Page<br />{<br />   private void Page_Load(object sender, System.EventArgs e)<br />   {</p>
		<p>QueryParams queryParams = new QueryParams();<br />IQueryParams queryInterface;<br />//实现该接口的页面<br />if( Context.Handler is IQueryParams)<br />{<br />queryInterface = ( IQueryParams )Context.Handler;<br />queryParams = queryInterface.Parameters;<br />}</p>
		<p>Response.Write( "StaDate：" );<br />Response.Write( queryParams.StaDate );<br />Response.Write( "&lt;br/&gt;EndDate：" );<br />Response.Write( queryParams.EndDate );<br />  }<br />}</p>
		<p>三、本文起因:<br />      因在工作中要作一个数据查询，参数烦多，原先是用Session传递，用完该Session传来的参数后，还需清理Session，在用Session之前还得判断该Session是否存在，极其烦琐，我想应该还有更简便的方法来实现页面间的参数传递，故上网查找，终于找到这样一种方式来实现页面间的参数传递。<br />  有不到之处，请大家指正！<br /><br /><br />我说详细一点，现在有这样一种Web开发模式：</p>
		<p>Page - 窗体容器，从.net framework接受客户端请求，并最终向客户端输出html，承载UserControl容器并组装之<br />UserControl - 功能模块，对一个特定功能进行封装，承载WebControl的容器<br />WebControl - 封装了单一的业务逻辑，和与之对应对应的HTML输出、客户端交互UI</p>
		<p>所有的请求参数由Page得到，最终传递至UserControl容纳的WebControl内<br />在这个过程中，Page（甚至是UserControl）不提供任何逻辑进行干预，UserControl/WebControl的可变特性完全由持久化的HTML代码给出<br />——也就是说，所有的Page都没有代码，如何在一个系统中做到Transfer所需要的参数便于维护、调整？</p>
		<p>页面1:<br />public class Page1 : System.Web.UI.Page<br />{<br />public UserControl1 userControl1;<br />public UserControl2 userControl2;<br />}<br />用户控件1：<br />public class UserControl2 :System.Web.UI.UserControl<br />{<br />private void btnEnter_Click(object sender, System.EventArgs e)<br />{<br />Server.Transfer("Page2.aspx");<br />}<br />}<br />//－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />页面2：<br />public class Page2 : System.Web.UI.Page<br />{<br />public UserControl3 userControl3;<br />public UserControl4 userControl4;<br />}</p>
		<p>用户控件3：<br />public class UserControl3 :System.Web.UI.UserControl<br />{<br />private void Page_Load(object sender, System.EventArgs e)<br />{<br />Page1 page1 = (Page1)Context.Handler;<br />Response.Write( "属性1" );<br />Response.Write( page1.userControl1.属性1 );<br />Response.Write( "&lt;br/&gt;属性2" );<br />Response.Write( page1.userControl2.属性2 );<br />}<br />}<br />//如果在页面1中没有声明用户控件1，在页面2中将引用不到页面1中用户控件1中的公共方法<br /><br /><br /><br /><br />另一种方法是<br />SourcePage设置一个<br />    public string Name<br />    {<br />        get { return txtName.Text; }<br />    }</p>
		<p>目标页面首先声明：<br />&lt;%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %&gt; </p>
		<p>然后在后台代码直接使用</p>
		<p>Response.Write(PreviousPage.Name);<br /></p>
<img src ="http://www.blogjava.net/wangxinsh55/aggbug/98898.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2007-02-09 08:58 <a href="http://www.blogjava.net/wangxinsh55/archive/2007/02/09/98898.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Asp.net 实现验证码功能的Web控件</title><link>http://www.blogjava.net/wangxinsh55/archive/2007/02/01/97162.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Thu, 01 Feb 2007 02:43:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2007/02/01/97162.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/97162.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2007/02/01/97162.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/97162.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/97162.html</trackback:ping><description><![CDATA[
		<font color="#003300">
				<strong>     </strong>
				<font size="2">Asp.net的设计方式和设计理念和其他的如Asp,Jsp,Php,Perl</font>
		</font>
		<p>
				<font size="2">等都不一样，几乎是完全的面向对象设计！代码的复用就是其</font>
		</p>
		<p>
				<font size="2">中差异较大的特点之一，Asp.net除了可以用Include以外，还提供</font>
		</p>
		<p>
				<font size="2">了比较有特点的Web控件，包括：Ascx形式和带设计时支持的控</font>
		</p>
		<p>
				<font size="2">件[本文属于后者],为了熟悉这些新概念，我自己写了个Web控件。</font>
		</p>
		<p>
				<font size="2">在实际项目中运行使用良好，以后，要有时间，我还将不断改进。</font>
		</p>
		<p>
				<strong>
						<font color="#003300" size="3">
						</font>
				</strong>
		</p>
		<p>
				<font color="#000080" size="4">
						<strong>ValidateCode控件的使用方法:</strong>
				</font>
		</p>
		<p>
				<font color="#993366" size="3">
						<strong>第一步：</strong>
				</font>
		</p>
		<p>
				<font size="2">编译我提供的原代码, 然后,在Studio.net 2003工具栏上, 选择"添加/移除项", 选中编译好的dll文件。</font>
		</p>
		<p>
				<font color="#993366" size="3">
						<strong>第二步：</strong>
				</font>
		</p>
		<p>
				<font size="2">工具栏上就会多一个Web控件ValidateCode,做好一个Web窗体,在Studio.net 2003开发界面上,直接把控件拖到WebForm上,就OK！</font>
		</p>
		<p>
				<font color="#993366" size="3">
						<strong>第三步：</strong>
				</font>
		</p>
		<p>
				<font size="2">在该控件的GraphicOK事件中获取，验证码的字符信息，用于和用户录入做比较！</font>
		</p>
		<p>
				<font color="#993366" size="3">
						<strong>最后一步：</strong>
				</font>
		</p>
		<p>
				<font size="2">在网站的根目录下，建一个temp目录（也可以自己指定目录），用于存放验证码</font>
		</p>
		<p>
				<font size="2">图片，不用担心，代码会自动删除无用的图片！</font>
		</p>
		<p>
				<font size="2">
				</font>
		</p>
		<p>
				<font color="#339966" size="3">
						<strong>原代码如下：</strong>
				</font>
		</p>
		<p>using System;<br />using System.Web.UI;<br />using System.Web.UI.WebControls;<br />using System.ComponentModel;<br />using System.IO;<br />using System.Drawing;<br />using System.Drawing.Drawing2D;<br />using System.Drawing.Imaging;</p>
		<p>namespace WebValidateCode<br />{<br /> /// &lt;summary&gt;<br /> /// ValidateCode 的摘要说明。<br /> /// 设计者:王海波 2004-11-20<br /> /// &lt;/summary&gt;<br /> /// <br /> public enum GraphicType <br /> {<br />  Jpg = 0,<br />  Gif = 1,<br />  Png = 2,<br />  Bmp = 3,<br /> }</p>
		<p>
				<br /> //[ToolboxBitmap(@"D:\DotnetApp\ValidateCode\ValidateCode.bmp") ] //设置控件在工具箱上的图标<br /> public class ValidateCode : System.Web.UI.WebControls.WebControl ,INamingContainer <br /> {<br />  private int pCodelen=5;<br />  private int pChartWidth=100;<br />  private int pChartHeight=20;</p>
		<p>  private GraphicType pChartType;<br />  <br />  private string pAuthenCode;</p>
		<p>  private string pTempImageURLPath="/temp";<br />  private string pAuthenImageFullname;<br />  private string pAuthenImageFullURL;<br />   <br />  //生成校验码的变量 start<br />  private Bitmap validateImage;<br />  private Graphics g;<br />  //生成校验码的变量 End</p>
		<p>  private TextBox txt=new TextBox(); <br />  private System.Web.UI.WebControls.Image img= new System.Web.UI.WebControls.Image(); </p>
		<p>  #region 定义控件事件<br />  <br />  public delegate void GraphicCreated(object sender, EventArgs e);<br />  public event EventHandler GraphicOK;   //在校验图片生成结束以后触发</p>
		<p>  protected virtual void OnGraphicOK(object sender, EventArgs e)<br />  {   <br />   if (GraphicOK != null) <br />   {<br />    //Invokes the delegates.<br />    GraphicOK(sender, e); <br />   }  <br />  }<br /> <br />  #endregion<br />    <br />  #region 控件属性<br />  <br />  //生成校验码的长度<br />  [Bindable(true),Browsable(true),Category("Appearance"),DefaultValue(true),Description("需要验证码的长度,建议在5~8位之间!")]<br />  public int CodeLength<br />  {<br />   get<br />   {<br />    return pCodelen;<br />   }</p>
		<p>   set<br />   {<br />    pCodelen = value;<br />   }<br />  }</p>
		<p>  //生成校验码的长度<br />  [Bindable(true),Browsable(true),Category("Appearance"),DefaultValue(true),Description("生成验证码图片的临时存放路径,要求必须是网站下的虚拟目录!")]<br />  public string TempImageURLPath<br />  {<br />   get<br />   {<br />    return pTempImageURLPath;<br />   }</p>
		<p>   set<br />   {<br />    pTempImageURLPath = value;<br />   }<br />  }</p>
		<p>  [Bindable(true),Browsable(true),Category("Appearance"),DefaultValue(GraphicType.Jpg),Description("选择生成校验图文件的类型(Jpg;Gif;Png;Bmp)!")]<br />  public GraphicType ChartType<br />  {<br />   get<br />   {<br />    return pChartType;<br />   }</p>
		<p>   set<br />   {<br />    pChartType = value;<br />   }  <br />  }</p>
		<p>
				<br />  //生成校验码图片的宽度<br />  public int ChartWidth<br />  {<br />   get<br />   {<br />    return pChartWidth;<br />   }</p>
		<p>   set<br />   {<br />    pChartWidth = value;<br />   }<br />  }</p>
		<p>  //生成校验码图片的高度<br />  public int ChartHeight<br />  {<br />   get<br />   {<br />    return pChartHeight;<br />   }</p>
		<p>   set<br />   {<br />    pChartHeight = value;<br />   }<br />  }</p>
		<p>  //需要生成的校验码<br />  public string AuthenCode<br />  {<br />   get<br />   {<br />    return pAuthenCode;<br />   }</p>
		<p>   set<br />   {<br />    pAuthenCode = value;<br />   }<br />  }</p>
		<p>  #endregion</p>
		<p>  /// &lt;summary&gt;<br />  /// 将此控件呈现给指定的输出参数。<br />  /// &lt;/summary&gt;<br />  /// &lt;param name="output"&gt; 要写出到的 HTML 编写器 &lt;/param&gt;<br />  protected override void Render(HtmlTextWriter output)<br />  {<br />        <br />   System.Web.UI.WebControls.Image objImage;<br />         //TextBox objTxt;<br />     <br />     <br />   //绘制包含的控件   <br />   objImage  = (System.Web.UI.WebControls.Image) Controls[0]; <br />   //objTxt  = (TextBox) Controls[1];     <br />   <br />   if(pAuthenCode==null)<br />      pAuthenCode=GetValidateCode();<br />              <br />   OnGraphicOK(this,EventArgs.Empty );<br />   <br />   GetRandomImage(pAuthenCode);<br />   objImage.ImageUrl=pAuthenImageFullURL;</p>
		<p>   objImage.RenderControl(output); <br />                <br />  }</p>
		<p>  /// &lt;summary&gt;<br />  /// 给控件添加子控件<br />  /// &lt;/summary&gt;<br />  protected  override  void  CreateChildControls(    )<br />  {<br />   <br />   //Controls.Add(btn);<br />   Controls.Add(img);<br />   //Controls.Add(txt);<br />  }</p>
		<p>  /// &lt;summary&gt;<br />  /// 控件Load时候属性的初始化<br />  /// &lt;/summary&gt;<br />  /// &lt;param name="e"&gt;&lt;/param&gt;<br />  protected  override  void OnLoad(System.EventArgs e)<br />  {<br />      EraseOldGraphic();   //删除过期的图片<br />  }</p>
		<p>  /// &lt;summary&gt;<br />  /// 生成随机的<br />  /// &lt;/summary&gt;<br />  private void MakeRandomFileName()<br />  {<br />   string strRandName=DateTime.Now.Ticks.ToString()+".jpg";   <br />   pAuthenImageFullname=this.Page.MapPath(TempImageURLPath)+@"\"+strRandName;<br />   pAuthenImageFullURL=TempImageURLPath+"/"+strRandName;<br />  }</p>
		<p>
				<br />  private void GetRandomImage(string strValidateCode)<br />  {   <br />   //生成随即图片的全名,和全URL<br />   MakeRandomFileName();</p>
		<p>   validateImage = new Bitmap(pChartWidth, pChartHeight, PixelFormat.Format24bppRgb); // .Format24bppRgb);<br />   g = Graphics.FromImage(validateImage);<br /> <br />   g.Clear(Color.LightGray) ;</p>
		<p>   //g.DrawString(strValidateCode , new Font("宋体",16,FontStyle.Bold),new SolidBrush(Color.DarkRed),new PointF(2,2));</p>
		<p>   for(int i=0;i&lt;strValidateCode.Length;i++)<br />   {     <br />    Random r = new Random();<br />    PointF startPos=new PointF(r.Next(3,6)+(r.Next(12,14)*i ),r.Next(-1,2) ); <br />       <br />    g.DrawString(strValidateCode.Substring(i,1) , new Font("宋体",14,FontStyle.Italic),new SolidBrush(Color.Blue),startPos);<br />   }</p>
		<p>   <br />   //g.FillRectangle(new LinearGradientBrush(new Point(0,0), new Point(120,30), Color.FromArgb(0,0,0,0),Color.FromArgb(255,255,255,255)),0,0,120,30); <br />   switch(pChartType)<br />   {<br />    case GraphicType.Jpg:<br />    <br />     validateImage.Save(pAuthenImageFullname, ImageFormat.Jpeg);<br />     break;<br /> <br />    case GraphicType.Gif:</p>
		<p>     validateImage.Save(pAuthenImageFullname, ImageFormat.Gif);<br />     break;</p>
		<p>    case GraphicType.Png:</p>
		<p>     validateImage.Save(pAuthenImageFullname, ImageFormat.Png);<br />     break;<br /> <br />    case GraphicType.Bmp:</p>
		<p>     validateImage.Save(pAuthenImageFullname, ImageFormat.Bmp);<br />     break;<br /> <br />    default:<br />     validateImage.Save(pAuthenImageFullname, ImageFormat.Jpeg);<br />     break;<br />   <br />   }<br />       <br />   validateImage.Dispose(); </p>
		<p>   g.Dispose(); <br />   <br />   <br />  <br />  }</p>
		<p>  /// &lt;summary&gt;<br />  /// 动态从数字和字母组成的元素中动态选择生成校验码<br />  /// &lt;/summary&gt;<br />  private string GetValidateCode()<br />  {<br />   char[] s = new char[]{'0','1', '2','3','4','5','6','7','8','9','a'<br />          ,'b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q'<br />          ,'r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G'<br />          ,'H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W'<br />          ,'X','Y','Z'};<br />   string num = "";<br />   Random r = new Random();</p>
		<p>   //根据用户需要的长度来定义验证码的位数<br />   for(int i = 0; i &lt; CodeLength; i++)<br />   {<br />    num += s[r.Next(0, s.Length)].ToString(); <br />   }<br />   <br />   return num;<br />  }</p>
		<p>  /// &lt;summary&gt;<br />  /// 清除时间超过20秒的临时图片记录<br />  /// &lt;/summary&gt;<br />  /// &lt;returns&gt;成功返回true,失败返回false&lt;/returns&gt;<br />  public bool EraseOldGraphic()<br />  {</p>
		<p>   try<br />   {<br />    DirectoryInfo Dinfo=new DirectoryInfo(this.Page.MapPath(pTempImageURLPath));<br />    FileInfo[] FileSet; <br /> <br />    if(Dinfo.Exists)<br />    {    <br />     switch(pChartType)<br />     {<br />      case GraphicType.Jpg:<br />    <br />       FileSet=Dinfo.GetFiles("*.jpg");<br />       break;<br /> <br />      case GraphicType.Gif:</p>
		<p>       FileSet=Dinfo.GetFiles("*.gif");<br />       break;</p>
		<p>      case GraphicType.Png:</p>
		<p>       FileSet=Dinfo.GetFiles("*.png");<br />       break;<br /> <br />      case GraphicType.Bmp:</p>
		<p>       FileSet=Dinfo.GetFiles("*.bmp");<br />       break;<br /> <br />      default:<br />       FileSet=Dinfo.GetFiles("*.jpg");<br />       break;<br />   <br />     }</p>
		<p>     foreach(FileInfo fileInfo in FileSet)<br />     {<br />      if(fileInfo.Exists)<br />      {<br />       DateTime dts=DateTime.Now;<br />       DateTime dtc=fileInfo.CreationTime;</p>
		<p>       TimeSpan ts=dts-dtc;<br />  <br />       if(ts.Seconds&gt;20)<br />       {        <br />        fileInfo.Delete(); <br />       }<br />      }<br />     }<br />    }</p>
		<p>    return true;<br />   }<br />   catch(IOException ioe)<br />   {<br />       return false;<br />   }<br />  }<br />  <br /> }<br />}<br /></p>
		<p>
		</p>
		<br />
<img src ="http://www.blogjava.net/wangxinsh55/aggbug/97162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangxinsh55/" target="_blank">SIMONE</a> 2007-02-01 10:43 <a href="http://www.blogjava.net/wangxinsh55/archive/2007/02/01/97162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ajax类库的使用 </title><link>http://www.blogjava.net/wangxinsh55/archive/2007/01/25/96000.html</link><dc:creator>SIMONE</dc:creator><author>SIMONE</author><pubDate>Thu, 25 Jan 2007 09:05:00 GMT</pubDate><guid>http://www.blogjava.net/wangxinsh55/archive/2007/01/25/96000.html</guid><wfw:comment>http://www.blogjava.net/wangxinsh55/comments/96000.html</wfw:comment><comments>http://www.blogjava.net/wangxinsh55/archive/2007/01/25/96000.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangxinsh55/comments/commentRss/96000.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangxinsh55/services/trackbacks/96000.html</trackback:ping><description><![CDATA[
		<div align="left">转自msdn </div>
		<div align="left">AJAX依靠代理（broker）指派和处理往返服务器的请求。对此，.NET包装器依靠客户端XmlHttpRequest对象。多数浏览器都支持XmlHttpRequest对象，这就是选择它的原因。因为包装器的目的是隐藏XmlHttpRequest的实现，我们就不再详细讨论它了。</div>
		<div align="left">包装器本身通过将.NET函数标记为AJAX方法来工作。标记之后，AJAX就创建对应的JavaScript函数，这些函数（和任何JavaScript函数一样）作为代理可以在客户端使用XmlHttpRequest调用。这些代理再映射回服务器端函数。</div>
		<div align="left">复杂吗？并不复杂。我们来看一个例子。假设有一个.NET函数：</div>
		<div align="left">
				<font color="#ff0000">ublic int Add(int firstNumber, int secondNumber)<br />{<br />return firstNumber + secondNumber;<br />}</font>
		</div>
		<div align="left">AJAX .NET包装器将自动创建名为“Add”、带有两个参数的JavaScript函数。使用JavaScript（在客户机上）调用该函数时，请求将传递给服务器并把结果返回给客户机。</div>
		<div align="left"> </div>
		<div align="left">
				<strong>初始设置</strong>
		</div>
		<div align="left">
				<strong>
				</strong>
		</div>
		<div align="left">我们首先介绍“安装”项目中使用的.dll的步骤。如果您很清楚如何添加.dll文件引用，可以跳过这一节。</div>
		<div align="left">首先，如果还没有的话，请下载最新的AJAX版本。解压下载的文件并把ajax.dll放到项目的引用文件夹中。在Visual Studio.NET中有机Solution Explorer的“References（引用）”节点并选择Add Reference（添加引用）。在打开的对话框中，单击Browse（浏览）并找到ref/ajax.dll文件。依次单击Open（打开）和Ok（确认）。这样就可以用AJAX .NET包装器编程了。</div>
		<div align="left">建立HttpHandler</div>
		<div align="left">为了保证正常工作，第一步是在web.config中设置包装器的HttpHandler。不需要详细解释HttpHandlers是什么及其如何工作，只要知道它们用于处理ASP.NET请求就足够了。比如，所有*.aspx页面请求都由System.Web.UI.PageHandlerFactory类处理。类似的，我们让所有对ajax/*.ashx的请求由Ajax.PageHandlerFactory处理：</div>
		<div align="left">
				<font color="#ff0000">&lt;configuration&gt;<br />  &lt;system.web&gt;<br />    &lt;httpHandlers&gt;<br />      &lt;add verb="POST,GET" path="ajax/*.ashx"<br />          type="Ajax.PageHandlerFactory, Ajax" /&gt;<br />    &lt;/httpHandlers&gt;  <br />    ...<br />  &lt;system.web&gt;<br />&lt;/configuration&gt;</font>
		</div>
		<div align="left">简言之，上面的代码告诉ASP.NET，和指定路径（ajax/*.ashx）匹配的任何请求都由Ajax.PageHandlerFactory而不是默认处理程序工厂来处理。不需要创建ajax子目录，使用这个神秘的目录只是为了让其他HttpHandlers能够在自己建立的子目录中使用.ashx扩展。</div>
		<div align="left"> </div>
		<div align="left">
				<strong>建立页面</strong>
		</div>
		<div align="left">
				<strong>
				</strong>
		</div>
		<div align="left">现在我们可以开始编码了。创建一个新页面或者打开已有的页面，在file后的代码中，为Page_Load事件添加以下代码：</div>
		<div align="left">
				<font color="#ff0000">public class Index : System.Web.UI.Page{<br />  private void Page_Load(object sender, EventArgs e){<br />      Ajax.Utility.RegisterTypeForAjax(typeof(Index));      <br />      //...    <br />  }<br />  //...  <br />}</font>
		</div>
		<div align="left">调用RegisterTypeForAjax将在页面上引发后面的JavaScript（或者在页面中手工加入以下两行代码）：</div>
		<div align="left">&lt;script language="javascript" src="ajax/common.ashx"&gt;&lt;/script&gt;<br />&lt;script language="javascript" <br />src="ajax/Namespace.PageClass,AssemblyName.ashx"&gt;&lt;/script&gt;</div>
		<div align="left">其中最后一行的含义是：</div>
		<ul type="disc">
				<li>Namespace.PageClass——当前页面的名称空间和类（<a href="mailto:通常是@Page指令中Inherits属性的值">通常是@Page指令中Inherits属性的值</a>） 
</li>
				<li>AssemblyName——当前页面所属程序集的名称（通常就是项目名） </li>
		</ul>
		<div align="left">下面是AjaxPlay项目中sample.aspx页面的结果例子：</div>
		<div align="left">
				<font color="#ff0000">&lt;%@ Page Inherits="AjaxPlay.Sample" Codebehind="sample.aspx.cs" ... %&gt;<br />&lt;html&gt;<br />&lt;head&gt;<br />  &lt;script language="javascript" src="ajax/common.ashx"&gt;&lt;/script&gt;<br />  &lt;script language="javascript"<br />          src="ajax/AjaxPlay.Sample,AjaxPlay.ashx"&gt;&lt;/script&gt;<br />&lt;/head&gt;<br />  &lt;body&gt;    <br />    &lt;form id="Form1" method="post" runat="server"&gt;<br />      ...<br />    &lt;/form&gt;    <br />  &lt;/body&gt;<br />&lt;/html&gt;</font>
		</div>
		<div align="left">可以在浏览器中手工导航到src路径（查看源代码，复制粘贴路径）检查是否一切正常。如果两个路径都输出一些（似乎）毫无意义的文本，就万事大吉了。如果什么也没输出或者出现ASP.NET错误，则表明有些地方出现问题。</div>
		<div align="left">即便不知道HttpHandlers如何工作，上面的例子也很容易理解。通过web.config，我们已经保证所有对ajax/*.ashx的请求都由自定义的处理程序处理。显然，这里的两个脚本标签将由自定义的处理程序处理。</div>
		<div align="left"> </div>
		<div align="left">
				<strong>创建服务器端函数</strong>
		</div>
		<div align="left">
				<strong>
				</strong>
		</div>
		<div align="left">现在来创建可从客户端调用中异步访问的服务器端函数。因为目前还不支持所有的返回类型（不用担心，将在目前的基础上开发新的版本），我们继续使用简单的ServerSideAdd函数吧。在file后的代码中，向页面添加下列代码：</div>
		<div align="left">[Ajax.AjaxMethod()]<br /><font color="#ff0000">public int ServerSideAdd(int firstNumber, int secondNumber)<br />{<br />  return firstNumber + secondNumber;<br />}</font></div>
		<div align="left">要注意，这些函数具有Ajax.AjaxMethod属性集。该属性告诉包装器这些方法创建javaScript代理，以便在客户端调用。</div>
		<div align="left"> </div>
		<div align="left">
				<strong>客户端调用</strong>
		</div>
		<div align="left">
				<strong>
				</strong>
		</div>
		<div align="left">最后一步是用JavaScript调用该函数。AJAX包装器负责创建带有两个参数的JavaScript函数Sample.ServerSideAdd。对这种最简单的函数，只需要调用该方法并传递两个数字：</div>
		<div align="left">
				<font color="#ff0000">&lt;%@ Page Inherits="AjaxPlay.Sample" Codebehind="sample.aspx.cs" ... %&gt;<br />&lt;html&gt;<br />&lt;head&gt;<br />  &lt;script language="javascript" src="ajax/common.ashx"&gt;&lt;/script&gt;<br />  &lt;script language="javascript" <br />          src="ajax/AjaxPlay.Sample,AjaxPlay.ashx"&gt;&lt;/script&gt;<br />&lt;/head&gt;<br />  &lt;body&gt;    <br />    &lt;form id="Form1" method="post" runat="server"&gt;<br />      &lt;script language="javascript"&gt;<br />        var response = Sample.ServerSideAdd(100,99);<br />        alert(response.value);<br />      &lt;/script&gt;<br />    &lt;/form&gt;    <br />  &lt;/body&gt;<br />&lt;/html&gt;</font>
		</div>
		<div align="left">当然，我们不希望仅仅用这种强大的能力来警告用户。这就是所有客户端代理（如JavaScript Sample.ServerSideAd函数）还接受其他特性的原因。这种特性就是为了处理响应而调用的回调函数：</div>
		<div align="left">
				<font color="#ff0000">Sample.ServerSideAdd(100,99, ServerSideAdd_CallBack);<br /><br />function ServerSideAdd_CallBack(response){<br /> if (response.error != null){<br />  alert(response.error);<br />  return;<br /> }<br /> alert(response.value);<br />}</font>
		</div>
		<div align="left">从上述代码中可以看到我们指定了另外一个参数。ServerSideAdd_CallBack（同样参见上述代码）是用于处理服务器响应的客户端函数。这个回调函数接收一个响应对象，该对象公开了三个主要性质</div>
		<ul type="disc">
				<li>
						<font color="#0000ff">Value</font>——服务器端函数实际返回的值（无论是字符串、自定义对象还是数据集）。 
</li>
				<li>
						<font color="#0000ff">Error</font>——错误消息，如果有的话。 
</li>
				<li>
						<font color="#0000ff">Request</font>——xml http请求的原始响应。 
</li>
				<li>
						<font color="#0000ff">Context</font>——上下文对象。 </li>
		</ul>
		<div align="left">首先我们检查error只看看是否出现了错误。通过在服务器端函数中抛出异常，可以很容易处理error特性。在这个简化的例子中，然后用这个值警告用户。Request特性可用于获得更多信息（参见下一节）。</div>
		<div align="left"> </div>
		<div align="left">
				<font color="#ff0000">
						<strong>处理类型</strong>
				</font>
		</div>
		<div align="left"> </div>
		<div align="left">
				<strong>返回复杂类型</strong>
		</div>
		<div align="left">
				<strong>
				</strong>
		</div>
		<div align="left">Ajax包装器不仅能处理ServerSideAdd函数所返回的整数。它目前还支持integers、strings、double、booleans、DateTime、DataSets和DataTables，以及自定义类和数组等基本类型。其他所有类型都返回它们的ToString值。</div>
		<div align="left">返回的DataSets和真正的.NET DataSet差不多。假设一个服务器端函数返回DataSet，我们可以通过下面的代码在客户端显示其中的内容：</div>
		<div align="left">
				<font color="#ff0000">&lt;script language="JavaScript"&gt;<br />//Asynchronous call to the mythical "GetDataSet" server-side function<br />function getDataSet(){<br />  AjaxFunctions.GetDataSet(GetDataSet_callback);    <br />}<br />function GetDataSet_callback(response){<br />  var ds = response.value;<br />  if(ds != null &amp;&amp; typeof(ds) == "object" &amp;&amp; ds.Tables != null){<br />    var s = new Array();<br />    s[s.length] = "&lt;table border=1&gt;";<br />    for(var i=0; i&lt;ds.Tables[0].Rows.length; i++){<br />      s[s.length] = "&lt;tr&gt;";<br />      s[s.length] = "&lt;td&gt;" + ds.Tables[0].Rows[i].FirstName + "&lt;/td&gt;";<br />      s[s.length] = "&lt;td&gt;" + ds.Tables[0].Rows[i].Birthday + "&lt;/td&gt;";<br />      s[s.length] = "&lt;/tr&gt;";<br />    }<br />    s[s.length] = "&lt;/table&gt;";<br />    tableDisplay.innerHTML = s.join("");<br />  }<br />  else { <br />    alert("Error. [3001] " + response.request.responseText); <br />  }<br />}<br />&lt;/script&gt;</font>
		</div>
		<div align="left">Ajax还可以返回自定义类，唯一的要求是必须用Serializable属性标记。假设有如下的类：</div>
		<div align="left">[Serializable()]<br /><font color="#ff0000">public class User{<br />  private int _userId;<br />  private string _firstName;<br />  private string _lastName;<br /><br />  public int userId{<br />    get { return _userId; }<br />  }<br />  public string FirstName{<br />    get { return _firstName; }<br />  }<br />  public string LastName{<br />    get { return 