﻿<?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-无为-随笔分类-DotNet </title><link>http://www.blogjava.net/mlh123caoer/category/12051.html</link><description>无为则可为，无为则至深！
</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 03:40:27 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 03:40:27 GMT</pubDate><ttl>60</ttl><item><title>AJAX .Net Wrapper usage guide</title><link>http://www.blogjava.net/mlh123caoer/archive/2006/07/22/59519.html</link><dc:creator>草儿</dc:creator><author>草儿</author><pubDate>Sat, 22 Jul 2006 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/mlh123caoer/archive/2006/07/22/59519.html</guid><wfw:comment>http://www.blogjava.net/mlh123caoer/comments/59519.html</wfw:comment><comments>http://www.blogjava.net/mlh123caoer/archive/2006/07/22/59519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mlh123caoer/comments/commentRss/59519.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mlh123caoer/services/trackbacks/59519.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: AJAX .Net Wrapper usage guide. 1																																																																																																								Background. 1															...&nbsp;&nbsp;<a href='http://www.blogjava.net/mlh123caoer/archive/2006/07/22/59519.html'>阅读全文</a><img src ="http://www.blogjava.net/mlh123caoer/aggbug/59519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mlh123caoer/" target="_blank">草儿</a> 2006-07-22 11:19 <a href="http://www.blogjava.net/mlh123caoer/archive/2006/07/22/59519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Microsoft SQL Server 2005 查询分页 </title><link>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51819.html</link><dc:creator>草儿</dc:creator><author>草儿</author><pubDate>Sat, 10 Jun 2006 05:20:00 GMT</pubDate><guid>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51819.html</guid><wfw:comment>http://www.blogjava.net/mlh123caoer/comments/51819.html</wfw:comment><comments>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51819.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mlh123caoer/comments/commentRss/51819.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mlh123caoer/services/trackbacks/51819.html</trackback:ping><description><![CDATA[<p>微软新的SQL Server 2005新增了数据库分页功能，以后再也用写复杂不灵活而低效率的分页存储过程。<br />新的数据库分页功能的核心是一个叫row_number的函数<br />具体如下：</p>
		<p>返回结果集分区内行的序列号，每个分区的第一行从 1 开始。</p>
		<p>语法<br /> <br />ROW_NUMBER ( )     OVER ( [ &lt;partition_by_clause&gt; ] &lt;order_by_clause&gt; )<br /> </p>
		<p>备注<br />ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。</p>
		<p>参数<br />&lt;partition_by_clause&gt; </p>
		<p>将 FROM 子句生成的结果集划入应用了 ROW_NUMBER 函数的分区。 </p>
		<p>&lt;order_by_clause&gt;</p>
		<p>确定将 ROW_NUMBER 值分配给分区中的行的顺序。有关详细信息，请参阅 ORDER BY 子句 (Transact-SQL)。</p>
		<p>有关详细信息，请参阅 OVER 子句 (Transact-SQL)。</p>
		<p>返回类型<br />bigint </p>
		<p>示例<br />以下示例将根据年初至今的销售额，返回 AdventureWorks 中销售人员的 ROW_NUMBER。</p>
		<p> 复制代码 <br />USE AdventureWorks<br />GO<br />SELECT c.FirstName, c.LastName, ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS 'Row Number', s.SalesYTD, a.PostalCode<br />FROM Sales.SalesPerson s JOIN Person.Contact c on s.SalesPersonID = c.ContactID<br />JOIN Person.Address a ON a.AddressID = c.ContactID<br />WHERE TerritoryID IS NOT NULL AND SalesYTD &lt;&gt; 0<br /> </p>
		<p>以下示例将返回行号为 50 到 60（含）的行，并以 OrderDate 排序。</p>
		<p> 复制代码 <br />USE AdventureWorks;<br />GO<br />WITH OrderedOrders AS<br />(SELECT SalesOrderID, OrderDate,<br />ROW_NUMBER() OVER (order by OrderDate)as RowNumber<br />FROM Sales.SalesOrderHeader ) <br />SELECT * <br />FROM OrderedOrders <br />WHERE RowNumber between 50 and 60; <br /><br />==============================<br />进过我对百万行数据记录的分页测试，效率比以前网上能够找到的最好的存储过程（个人意见）稍高。<br />但是还是比同样的Oralce的分页效率低。</p><img src ="http://www.blogjava.net/mlh123caoer/aggbug/51819.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mlh123caoer/" target="_blank">草儿</a> 2006-06-10 13:20 <a href="http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51819.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#应用访问Microsoft SQL Server 2005分析服务 </title><link>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51818.html</link><dc:creator>草儿</dc:creator><author>草儿</author><pubDate>Sat, 10 Jun 2006 05:19:00 GMT</pubDate><guid>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51818.html</guid><wfw:comment>http://www.blogjava.net/mlh123caoer/comments/51818.html</wfw:comment><comments>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51818.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mlh123caoer/comments/commentRss/51818.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mlh123caoer/services/trackbacks/51818.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、前言								1				、运行环境								Windows 2003 Server Enterprise Edition with Service Pack 1								Microsoft SQL Server 2005 with Service Pack 1(				包含				Analysis Service)			...&nbsp;&nbsp;<a href='http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51818.html'>阅读全文</a><img src ="http://www.blogjava.net/mlh123caoer/aggbug/51818.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mlh123caoer/" target="_blank">草儿</a> 2006-06-10 13:19 <a href="http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51818.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LINQ 初探 </title><link>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51813.html</link><dc:creator>草儿</dc:creator><author>草儿</author><pubDate>Sat, 10 Jun 2006 04:56:00 GMT</pubDate><guid>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51813.html</guid><wfw:comment>http://www.blogjava.net/mlh123caoer/comments/51813.html</wfw:comment><comments>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51813.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mlh123caoer/comments/commentRss/51813.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mlh123caoer/services/trackbacks/51813.html</trackback:ping><description><![CDATA[它是Language Integrated Query。<br />当我们要对数据库表进行查询的时候，我们一定会编写"select * from sometable where ID = .."的语句。好，那我们现在根据LINQ的语法，完全可以将我们熟悉的SQL中像"select","from","where"等语句在.NET Framework环境中顺利使用并且大大提高开发的效率。
<p>下面我就牛刀小试，做个demo看看。</p><p>1. 先下载LinQ框架 <br />    现在最新版本是2006年5月发布"Orcas CTP", 下载地址(<a title=" 这里 " href="http://www.microsoft.com/downloads/details.aspx?familyid=1e902c21-340c-4d13-9f04-70eb5e3dceea&amp;displaylang=en">这里 </a>)</p><p>2. 下载安装待完毕。</p><p>3. 新建一个"LINQ Console Application"项目。</p><p>4. 输入代码如下：    </p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> System;<br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> System.Collections.Generic;<br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> System.Text;<br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> System.Query;<br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> System.Xml.XLinq;<br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> System.Data.DLinq;<br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000"> LINQConsoleApplication1<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img id="Codehighlighter1_172_671_Open_Image" onclick="this.style.display='none'; Codehighlighter1_172_671_Open_Text.style.display='none'; Codehighlighter1_172_671_Closed_Image.style.display='inline'; Codehighlighter1_172_671_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_172_671_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_172_671_Closed_Text.style.display='none'; Codehighlighter1_172_671_Open_Image.style.display='inline'; Codehighlighter1_172_671_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_172_671_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_172_671_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> Program<br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img id="Codehighlighter1_196_669_Open_Image" onclick="this.style.display='none'; Codehighlighter1_196_669_Open_Text.style.display='none'; Codehighlighter1_196_669_Closed_Image.style.display='inline'; Codehighlighter1_196_669_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_196_669_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_196_669_Closed_Text.style.display='none'; Codehighlighter1_196_669_Open_Image.style.display='inline'; Codehighlighter1_196_669_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_196_669_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_196_669_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> Main(</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">[] args)<br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img id="Codehighlighter1_246_663_Open_Image" onclick="this.style.display='none'; Codehighlighter1_246_663_Open_Text.style.display='none'; Codehighlighter1_246_663_Closed_Image.style.display='inline'; Codehighlighter1_246_663_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_246_663_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_246_663_Closed_Text.style.display='none'; Codehighlighter1_246_663_Open_Image.style.display='inline'; Codehighlighter1_246_663_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span id="Codehighlighter1_246_663_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_246_663_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img id="Codehighlighter1_285_333_Open_Image" onclick="this.style.display='none'; Codehighlighter1_285_333_Open_Text.style.display='none'; Codehighlighter1_285_333_Closed_Image.style.display='inline'; Codehighlighter1_285_333_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_285_333_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_285_333_Closed_Text.style.display='none'; Codehighlighter1_285_333_Open_Image.style.display='inline'; Codehighlighter1_285_333_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">[] aBunchOfWords </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span id="Codehighlighter1_285_333_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_285_333_Open_Text"><span style="COLOR: #000000">{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">One</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Two</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hello</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">World</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, <br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Four</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Five</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />            var result </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> <br /></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />            from s </span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000"> aBunchOfWords </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> query the string array </span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">20</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            where s.Length </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">     </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> for all words with length = 5</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">21</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            select s;               </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> and return the string</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">22</span><span style="COLOR: #008000"><img id="Codehighlighter1_593_653_Open_Image" onclick="this.style.display='none'; Codehighlighter1_593_653_Open_Text.style.display='none'; Codehighlighter1_593_653_Closed_Image.style.display='inline'; Codehighlighter1_593_653_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_593_653_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_593_653_Closed_Text.style.display='none'; Codehighlighter1_593_653_Open_Image.style.display='inline'; Codehighlighter1_593_653_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">foreach</span><span style="COLOR: #000000"> (var s </span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000"> result) </span><span id="Codehighlighter1_593_653_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_593_653_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                Console.WriteLine(s); </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">print</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">24</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /></span><span style="COLOR: #000000">            }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></div><p><br />运行结果如下：<br />Hello<br />World<br />print any key to continue ...</p><img src ="http://www.blogjava.net/mlh123caoer/aggbug/51813.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mlh123caoer/" target="_blank">草儿</a> 2006-06-10 12:56 <a href="http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51813.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>六步使用ICallbackEventHandler实现无刷新回调 </title><link>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51810.html</link><dc:creator>草儿</dc:creator><author>草儿</author><pubDate>Sat, 10 Jun 2006 04:49:00 GMT</pubDate><guid>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51810.html</guid><wfw:comment>http://www.blogjava.net/mlh123caoer/comments/51810.html</wfw:comment><comments>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51810.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mlh123caoer/comments/commentRss/51810.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mlh123caoer/services/trackbacks/51810.html</trackback:ping><description><![CDATA[AJAX技术所提倡的无刷新回调，在原来的技术中需要写大量的JavaScript代码或使用一些AJAX框架，使得开发效率和可维护性大大降低。其实ASP.NET2.0中，已经提供了这样的接口，这就是ICallbackEventHandler。<br />    关于ICallbackEventHandler网上已经有很多文章介绍了，这篇实为画蛇添足。
<p>ICallbackEventHandler存在于System.Web.UI中，我们先做一个非常简单的例子来试用一下。</p><p>   第一步，在VS2005中建立一个新的WEB窗件。<br />   第二步，在ASPX中，放上一段HTML代码(如下)：<br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">form </span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="form1"</span><span style="COLOR: #ff0000"> runat</span><span style="COLOR: #0000ff">="server"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">3</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">4</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">button </span><span style="COLOR: #ff0000">onclick</span><span style="COLOR: #0000ff">="CallServer()"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">CallServer</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">button</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">5</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">6</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">form</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">7</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span></div><p><br />   第三步，然后在&lt;HEAD&gt;&lt;/HEAD&gt;中放入一段JavaScript脚本：<br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000"> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">script type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">text/javascript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />     </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> CallServer()<br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img id="Codehighlighter1_65_199_Open_Image" onclick="this.style.display='none'; Codehighlighter1_65_199_Open_Text.style.display='none'; Codehighlighter1_65_199_Closed_Image.style.display='inline'; Codehighlighter1_65_199_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_65_199_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_65_199_Closed_Text.style.display='none'; Codehighlighter1_65_199_Open_Image.style.display='inline'; Codehighlighter1_65_199_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />     </span><span id="Codehighlighter1_65_199_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_65_199_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />         </span><span style="COLOR: #0000ff">var</span><span style="COLOR: #000000"> product </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">测试</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />         </span><span style="COLOR: #000000">&lt;%=</span><span style="COLOR: #000000"> ClientScript.GetCallbackEventReference(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">product</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ReceiveServerData</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">%&gt;</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />     }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />     <br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />     </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> ReceiveServerData(rValue)<br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img id="Codehighlighter1_252_283_Open_Image" onclick="this.style.display='none'; Codehighlighter1_252_283_Open_Text.style.display='none'; Codehighlighter1_252_283_Closed_Image.style.display='inline'; Codehighlighter1_252_283_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_252_283_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_252_283_Closed_Text.style.display='none'; Codehighlighter1_252_283_Open_Image.style.display='inline'; Codehighlighter1_252_283_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />     </span><span id="Codehighlighter1_252_283_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_252_283_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />         alert(rValue);<br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />     }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">&gt;</span></div><p> </p><p>   第四步，在此ASPX的后台CS代码中，继承ICallbackEventHandler接口，并实现接口中的两个方法：<br /> ICallbackEventHandler.GetCallbackResult() <br />    和<br /> ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)</p><p>   第五步，增加一个变量CallBackValue，并修改接口的两个方法为：<br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> CallBackValue </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">.Empty;<br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />    <br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> ICallbackEventHandler.GetCallbackResult()<br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img id="Codehighlighter1_102_137_Open_Image" onclick="this.style.display='none'; Codehighlighter1_102_137_Open_Text.style.display='none'; Codehighlighter1_102_137_Closed_Image.style.display='inline'; Codehighlighter1_102_137_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_102_137_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_102_137_Closed_Text.style.display='none'; Codehighlighter1_102_137_Open_Image.style.display='inline'; Codehighlighter1_102_137_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span><span id="Codehighlighter1_102_137_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_102_137_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> CallBackValue </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,ok</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> ICallbackEventHandler.RaiseCallbackEvent(</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> eventArgument)<br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img id="Codehighlighter1_210_251_Open_Image" onclick="this.style.display='none'; Codehighlighter1_210_251_Open_Text.style.display='none'; Codehighlighter1_210_251_Closed_Image.style.display='inline'; Codehighlighter1_210_251_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_210_251_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_210_251_Closed_Text.style.display='none'; Codehighlighter1_210_251_Open_Image.style.display='inline'; Codehighlighter1_210_251_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span><span id="Codehighlighter1_210_251_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_210_251_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.CallBackValue </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> eventArgument;<br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></div><p> </p><p>    第六步，运行，界面上会出现一个按钮，点击后，会将“测试”这个字符串传至后台，后台C#代码将字符串加上“，OK”后返回给客户端的JavaScript代码，并显示。</p><p>    以上六步，就可以实现无刷新回调了。现在，我们来分析一下几段代码。<br />    先看第三步中的JavaScript代码，其中的CallServer()方法中进行了回调，回调的语句为：<br />&lt;%= ClientScript.GetCallbackEventReference(this, "product", "ReceiveServerData",null)%&gt;;<br />    <br />    里面四个参数中第二个参数指定将product这个JavaScript中的字符串变量传回后台，第三个参数指定了从后台返回时接收返回信息的JavaScript方法ReceiveServerData(string Value)。</p><p>    第五步中后台的两个方法，一个ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)用来接收前台JavaScript中传来的字符串变量，并赋值给内部变量this.CallBackValue，另一个方法ICallbackEventHandler.GetCallbackResult()将变更后的内部变量this.CallBackValue返回给前台JavaScript方法ReceiveServerData(string Value)。</p><p>    调用的顺序是： (前台)CallServer() --&gt; (后台)ICallbackEventHandler.RaiseCallbackEvent(string eventArgument) --&gt; (后台)ICallbackEventHandler.GetCallbackResult() --&gt; (前台)ReceiveServerData(string Value)。</p><p>    整个调用过程非常简单，而其中非常关键的一步是第三步的<br />&lt;%= ClientScript.GetCallbackEventReference(this, "product", "ReceiveServerData",null)%&gt;;<br />这个方法，以下是从网上找来的一段资料，大家可以看看。</p><p>GetCallbackEventReference使得客户端方法在客户端请求结束时得到回收。 它也让CallBackManager 确定产生哪种回叫方法。 在这个例子内使用的被重载的方法是：</p><p>   public string GetCallbackEventReference(<br />      string target, string argument,<br />      string clientCallback, string  context, <br />string clientErrorCallback) <br />Table 1. GetCallBackEventReference 方法的参数描述。<br />Parameters Description target ID of the page where the callback invocation is handled. For more see the other overloaded options available in the next immediate section.In our sample "this" is the argument value, since the callback is handled in the same page.  argument This is the parameter defintion used to send value to the server. This value is received by parameter "eventArgument" at the server end using the RaiseCallbackEvent event."arg" becomes the first parameter name in our sample. The value is passed through this argument from the client. clientCallback Method name of the callback that is invoked after successful server call."CallBackHandler" is the method name that handles the callback.   context A parameter that is associated with the "argument" from the client. It usually should be used to identify the context of the call. You will understand this better from the sample implementation.In the sample "ctx" is just another parameter definition used. The value for this is passed from the client. clientErrorCallback Name of the method that is called from the CallBackManager in case of any errors. <br />从这个方法返回的string是:</p><p>   <br />   __doCallback('__Page',arg,CallBackHandler,ctx, ErrorCallBack)<br /> <br />另一个重载方法是:</p><p>   public string GetCallbackEventReference(<br />      Control control, string argument,<br />      string clientCallback, string  context) <br />   <br />   public string GetCallbackEventReference(<br />      Control control, string argument,<br />      string clientCallback,  string  context, <br />string clientErrorCallback) <br /></p><img src ="http://www.blogjava.net/mlh123caoer/aggbug/51810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mlh123caoer/" target="_blank">草儿</a> 2006-06-10 12:49 <a href="http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#2.0泛型学习－－入门篇 </title><link>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51809.html</link><dc:creator>草儿</dc:creator><author>草儿</author><pubDate>Sat, 10 Jun 2006 04:47:00 GMT</pubDate><guid>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51809.html</guid><wfw:comment>http://www.blogjava.net/mlh123caoer/comments/51809.html</wfw:comment><comments>http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51809.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mlh123caoer/comments/commentRss/51809.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mlh123caoer/services/trackbacks/51809.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近频繁的接触到泛型方面的问题,所以也不得不来学习一下了,开始主要是在MSDN的WebCast上去下载教学录象看的(李建忠老师的),本篇文章先介绍一下泛型入门方面的知识,希望能让刚开始学习泛型的朋友能够更快的入门,言归正传,首先我们来看一下泛型的基本概念:      最显著的一点就是它参数化了类型,把类型作为参数抽象出来,从而使我们在实际的运用当中能够更好的实现代码的重复利用,同时它提供了更强的类...&nbsp;&nbsp;<a href='http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51809.html'>阅读全文</a><img src ="http://www.blogjava.net/mlh123caoer/aggbug/51809.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mlh123caoer/" target="_blank">草儿</a> 2006-06-10 12:47 <a href="http://www.blogjava.net/mlh123caoer/archive/2006/06/10/51809.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>