<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="css/rss.xslt"?>
<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>Sipo Blog - C#.Net 3.5</title><link>http://www.dc9.cn/</link><description>淡泊明志 - </description><generator>RainbowSoft Studio Z-Blog 1.8 Walle Build 100427</generator><language>zh-CN</language><copyright>Copyright Sipo.</copyright><pubDate>Fri, 10 Sep 2010 01:24:52 +0800</pubDate><item><title>因为该列没有包含在聚合函数或GROUP BY 子句中</title><author>a@b.c (sipo)</author><link>http://www.dc9.cn/post/572.html</link><pubDate>Sun, 21 Jun 2009 16:05:01 +0800</pubDate><guid>http://www.dc9.cn/post/572.html</guid><description><![CDATA[同样的语句，在SQLServer 中就是错的<br/><br/>在SQLite里面就是正确的<br/><p class="code"><code>SELECT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A,&nbsp;B,&nbsp;C<br/>FROM&nbsp;&nbsp;&nbsp;D<br/>GROUP&nbsp;BY&nbsp;A,&nbsp;B</code></p><br/>真是诡异<br/><br/>在SQLserver必须改成<br/><br/><br/><p class="code"><code>SELECT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A,&nbsp;B,&nbsp;MAX(C)<br/>FROM&nbsp;&nbsp;&nbsp;D<br/>GROUP&nbsp;BY&nbsp;A,&nbsp;B</code></p>]]></description><category>C#.Net 3.5</category><comments>http://www.dc9.cn/post/572.html#comment</comments><wfw:comment>http://www.dc9.cn/</wfw:comment><wfw:commentRss>http://www.dc9.cn/feed.asp?cmt=572</wfw:commentRss><trackback:ping>http://www.dc9.cn/cmd.asp?act=tb&amp;id=572&amp;key=e5ffff1b</trackback:ping></item><item><title>招聘ASP.net(C#)MIS软件工程师全职实习生（北京）</title><author>a@b.c (sipo)</author><link>http://www.dc9.cn/post/570.html</link><pubDate>Wed, 20 May 2009 17:05:40 +0800</pubDate><guid>http://www.dc9.cn/post/570.html</guid><description><![CDATA[<div style="padding-right: 5px; padding-left: 5px; font-size: 12px; padding-bottom: 5px; margin: 0px; line-height: 160%; padding-top: 5px; font-family: Arial, Verdana, sans-serif; background-color: rgb(255,255,255)"><p>北京欣华商科技有限公司（www.xhsrj.com）是创业型行业软件公司，因业务需要现招聘ASP.net实习生2名，日薪150/天，工作地点木樨地。</p><p>职位描述： &nbsp;</p><p>1）负责软件开发与维护。</p><p>2）根据项目任务计划，按时完成软件编码和测试工作。</p><p>能力要求：</p><p>1）精通C#、ASP.Net。</p><p>2）熟悉ASP.net 3.5 者优先。</p><p>3）熟悉EXT者优先。</p><p>4）了解ORM者优先。</p><p>5）有多人协作.NET开发经验者优先。</p><p>6）有MIS开发经验者优先。</p><p>7）有仓库管理、物流软件开发经验者优先。</p><p>有意者请发简历至：</p><p>sipo1209@gmail.com</p></div><p>&nbsp;</p>]]></description><category>C#.Net 3.5</category><comments>http://www.dc9.cn/post/570.html#comment</comments><wfw:comment>http://www.dc9.cn/</wfw:comment><wfw:commentRss>http://www.dc9.cn/feed.asp?cmt=570</wfw:commentRss><trackback:ping>http://www.dc9.cn/cmd.asp?act=tb&amp;id=570&amp;key=72455ac9</trackback:ping></item><item><title>Linq Left Join</title><author>a@b.c (sipo)</author><link>http://www.dc9.cn/post/568.html</link><pubDate>Thu, 23 Apr 2009 14:28:58 +0800</pubDate><guid>http://www.dc9.cn/post/568.html</guid><description><![CDATA[<p><span style="color: #ff0000">&nbsp;<p><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要说Linq的确是强大的东东，对于LeftJoin，一下就搞定。</span></p><p><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;var obb_dc9_cn = from p in obb_k<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; join p1 in obb_2 on p.k equals p1.k<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; into temp<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from p2 in temp.DefaultIfEmpty()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select new<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k= p.k,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; z = p2 == null ? (double)0 : (double)p2.dc9</span></p><p><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };</span></p></span></p><p>&nbsp;</p><p>&nbsp;</p>]]></description><category>C#.Net 3.5</category><comments>http://www.dc9.cn/post/568.html#comment</comments><wfw:comment>http://www.dc9.cn/</wfw:comment><wfw:commentRss>http://www.dc9.cn/feed.asp?cmt=568</wfw:commentRss><trackback:ping>http://www.dc9.cn/cmd.asp?act=tb&amp;id=568&amp;key=1db96c0d</trackback:ping></item><item><title>Linq的多列GroupBy</title><author>a@b.c (sipo)</author><link>http://www.dc9.cn/post/566.html</link><pubDate>Sun, 19 Apr 2009 01:17:25 +0800</pubDate><guid>http://www.dc9.cn/post/566.html</guid><description><![CDATA[多列(Multiple Columns)<br/>var categories =<br/>    from p in db.Products<br/>    group p by new<br/>    {<br/>        p.CategoryID,<br/>        p.SupplierID<br/>    }<br/>        into g<br/>        select new<br/>            {<br/>                g.Key,<br/>                g<br/>            };语句描述：使用Group By按CategoryID和SupplierID将产品分组。<br/><br/>说明：既按产品的分类，又按供应商分类。在by后面，new出来一个匿名类。这里，Key其实质是一个类的对象，Key包含两个Property：CategoryID、SupplierID。用g.Key.CategoryID可以遍历CategoryID的值。<br/>]]></description><category>C#.Net 3.5</category><comments>http://www.dc9.cn/post/566.html#comment</comments><wfw:comment>http://www.dc9.cn/</wfw:comment><wfw:commentRss>http://www.dc9.cn/feed.asp?cmt=566</wfw:commentRss><trackback:ping>http://www.dc9.cn/cmd.asp?act=tb&amp;id=566&amp;key=aeb6328d</trackback:ping></item><item><title>Constraint cannot be special class System.Enum</title><author>a@b.c (sipo)</author><link>http://www.dc9.cn/post/564.html</link><pubDate>Sat, 11 Apr 2009 22:34:12 +0800</pubDate><guid>http://www.dc9.cn/post/564.html</guid><description><![CDATA[本来兴高采烈实现了下面的代码。<br/><br/><p class="code"><code>private&nbsp;T&nbsp;str2enum&lt;T&gt;(string&nbsp;en)&nbsp;where&nbsp;T:&nbsp;Enum<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;os&nbsp;=&nbsp;Enum.GetNames(typeof(T));<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(var&nbsp;o&nbsp;in&nbsp;os)<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;var&nbsp;s&nbsp;=&nbsp;((T)Enum.Parse(typeof(T),&nbsp;o));<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(s.EnumToString()&nbsp;==&nbsp;en)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;s;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&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;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;default(T);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/></code></p><br/>VS突然提示<br/>Error	1	Constraint cannot be special class 'System.Enum'<br/><br/>突然感到莫名奇妙，于是查一查微软老大怎么解释的。<br/><br/>看到官方网上说了一堆也没太明白。反正就是不让用。于是很多人用了很多方法去绕过，比如用struct代替Enum绕过这个问题。<br/><br/>但是，很不巧，用了struct之后，Enum的扩展方法（public static class）就出不来了。晕死。<br/><br/>哎，放弃吧。]]></description><category>C#.Net 3.5</category><comments>http://www.dc9.cn/post/564.html#comment</comments><wfw:comment>http://www.dc9.cn/</wfw:comment><wfw:commentRss>http://www.dc9.cn/feed.asp?cmt=564</wfw:commentRss><trackback:ping>http://www.dc9.cn/cmd.asp?act=tb&amp;id=564&amp;key=30134a8d</trackback:ping></item><item><title>渐渐领会Linq里面ForEach的真谛了</title><author>a@b.c (sipo)</author><link>http://www.dc9.cn/post/563.html</link><pubDate>Sat, 11 Apr 2009 11:51:03 +0800</pubDate><guid>http://www.dc9.cn/post/563.html</guid><description><![CDATA[<p class="code"><code>class&nbsp;Static&nbsp;Algorithm&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;26&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;ForEach&lt;T&gt;(this&nbsp;IEnumerable&lt;T&gt;&nbsp;collection,&nbsp;Action&lt;T&gt;&nbsp;action)&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(T&nbsp;obj&nbsp;in&nbsp;collection)&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action(obj);&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;33&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;ForSpecification&lt;T&gt;(this&nbsp;IEnumerable&lt;T&gt;&nbsp;collection,&nbsp;Action&lt;T&gt;&nbsp;action,&nbsp;Predicate&lt;T&gt;&nbsp;filter)&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;36&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(T&nbsp;obj&nbsp;in&nbsp;collection)&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;37&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;38&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(filter(obj))&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action(obj);&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;41&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/><br/><br/><br/></code></p>]]></description><category>C#.Net 3.5</category><comments>http://www.dc9.cn/post/563.html#comment</comments><wfw:comment>http://www.dc9.cn/</wfw:comment><wfw:commentRss>http://www.dc9.cn/feed.asp?cmt=563</wfw:commentRss><trackback:ping>http://www.dc9.cn/cmd.asp?act=tb&amp;id=563&amp;key=13864c2f</trackback:ping></item><item><title>UltiDev Cassini Web Server 替代 IIS</title><author>a@b.c (sipo)</author><link>http://www.dc9.cn/post/562.html</link><pubDate>Thu, 09 Apr 2009 12:35:35 +0800</pubDate><guid>http://www.dc9.cn/post/562.html</guid><description><![CDATA[For Visual Studio 2008 and ASP.NET 3.5, 3.0 & 2.0 application development<br/>目前支持VS2008 .NET 3.5<br/>而且是免费的。]]></description><category>C#.Net 3.5</category><comments>http://www.dc9.cn/post/562.html#comment</comments><wfw:comment>http://www.dc9.cn/</wfw:comment><wfw:commentRss>http://www.dc9.cn/feed.asp?cmt=562</wfw:commentRss><trackback:ping>http://www.dc9.cn/cmd.asp?act=tb&amp;id=562&amp;key=8a327d72</trackback:ping></item><item><title>牛逼的Linq用法</title><author>a@b.c (sipo)</author><link>http://www.dc9.cn/post/561.html</link><pubDate>Wed, 08 Apr 2009 19:49:12 +0800</pubDate><guid>http://www.dc9.cn/post/561.html</guid><description><![CDATA[<p class="code"><code>public&nbsp;static&nbsp;void&nbsp;Main()<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Modify&nbsp;this&nbsp;path&nbsp;as&nbsp;necessary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;startFolder&nbsp;=&nbsp;@"c:\program&nbsp;files\Microsoft&nbsp;Visual&nbsp;Studio&nbsp;9.0\";<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Take&nbsp;a&nbsp;snapshot&nbsp;of&nbsp;the&nbsp;file&nbsp;system.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IEnumerable&lt;System.IO.FileInfo&gt;&nbsp;fileList&nbsp;=&nbsp;GetFiles(startFolder);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Create&nbsp;the&nbsp;regular&nbsp;expression&nbsp;to&nbsp;find&nbsp;all&nbsp;things&nbsp;"Visual".<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Text.RegularExpressions.Regex&nbsp;searchTerm&nbsp;=&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;System.Text.RegularExpressions.Regex(@"Visual&nbsp;(Basic|C#|C\+\+|J#|SourceSafe|Studio)");<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Search&nbsp;the&nbsp;contents&nbsp;of&nbsp;each&nbsp;.htm&nbsp;file.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Remove&nbsp;the&nbsp;where&nbsp;clause&nbsp;to&nbsp;find&nbsp;even&nbsp;more&nbsp;matches!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;This&nbsp;query&nbsp;produces&nbsp;a&nbsp;list&nbsp;of&nbsp;files&nbsp;where&nbsp;a&nbsp;match<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;was&nbsp;found,&nbsp;and&nbsp;a&nbsp;list&nbsp;of&nbsp;the&nbsp;matches&nbsp;in&nbsp;that&nbsp;file.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Note:&nbsp;Explicit&nbsp;typing&nbsp;of&nbsp;"Match"&nbsp;in&nbsp;select&nbsp;clause.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;This&nbsp;is&nbsp;required&nbsp;because&nbsp;MatchCollection&nbsp;is&nbsp;not&nbsp;a&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;generic&nbsp;IEnumerable&nbsp;collection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;queryMatchingFiles&nbsp;=<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;file&nbsp;in&nbsp;fileList<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;file.Extension&nbsp;==&nbsp;".htm"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;fileText&nbsp;=&nbsp;System.IO.File.ReadAllText(file.FullName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;matches&nbsp;=&nbsp;searchTerm.Matches(fileText)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;searchTerm.Matches(fileText).Count&nbsp;&gt;&nbsp;0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;new<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;name&nbsp;=&nbsp;file.FullName,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;matches&nbsp;=&nbsp;from&nbsp;System.Text.RegularExpressions.Match&nbsp;match&nbsp;in&nbsp;matches<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;match.Value<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Execute&nbsp;the&nbsp;query.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine("The&nbsp;term&nbsp;\"{0}\"&nbsp;was&nbsp;found&nbsp;in:",&nbsp;searchTerm.ToString());<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(var&nbsp;v&nbsp;in&nbsp;queryMatchingFiles)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Trim&nbsp;the&nbsp;path&nbsp;a&nbsp;bit,&nbsp;then&nbsp;write&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;the&nbsp;file&nbsp;name&nbsp;in&nbsp;which&nbsp;a&nbsp;match&nbsp;was&nbsp;found.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;s&nbsp;=&nbsp;v.name.Substring(startFolder.Length&nbsp;-&nbsp;1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(s);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;For&nbsp;this&nbsp;file,&nbsp;write&nbsp;out&nbsp;all&nbsp;the&nbsp;matching&nbsp;strings<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(var&nbsp;v2&nbsp;in&nbsp;v.matches)<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;Console.WriteLine("&nbsp;&nbsp;"&nbsp;+&nbsp;v2);<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;//&nbsp;Keep&nbsp;the&nbsp;console&nbsp;window&nbsp;open&nbsp;in&nbsp;debug&nbsp;mode<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine("Press&nbsp;any&nbsp;key&nbsp;to&nbsp;exit");<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadKey();<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;This&nbsp;method&nbsp;assumes&nbsp;that&nbsp;the&nbsp;application&nbsp;has&nbsp;discovery&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;permissions&nbsp;for&nbsp;all&nbsp;folders&nbsp;under&nbsp;the&nbsp;specified&nbsp;path.<br/>&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;IEnumerable&lt;System.IO.FileInfo&gt;&nbsp;GetFiles(string&nbsp;path)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!System.IO.Directory.Exists(path))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;System.IO.DirectoryNotFoundException();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string[]&nbsp;fileNames&nbsp;=&nbsp;null;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;System.IO.FileInfo&gt;&nbsp;files&nbsp;=&nbsp;new&nbsp;List&lt;System.IO.FileInfo&gt;();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileNames&nbsp;=&nbsp;System.IO.Directory.GetFiles(path,&nbsp;"*.*",&nbsp;System.IO.SearchOption.AllDirectories);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(string&nbsp;name&nbsp;in&nbsp;fileNames)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;files.Add(new&nbsp;System.IO.FileInfo(name));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;files;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/></code></p>]]></description><category>C#.Net 3.5</category><comments>http://www.dc9.cn/post/561.html#comment</comments><wfw:comment>http://www.dc9.cn/</wfw:comment><wfw:commentRss>http://www.dc9.cn/feed.asp?cmt=561</wfw:commentRss><trackback:ping>http://www.dc9.cn/cmd.asp?act=tb&amp;id=561&amp;key=2213ec90</trackback:ping></item><item><title>一个ASP.NET的development server问题？欢迎重现、解释(C#,VS2008)</title><author>a@b.c (sipo)</author><link>http://www.dc9.cn/post/552.html</link><pubDate>Thu, 29 Jan 2009 13:46:23 +0800</pubDate><guid>http://www.dc9.cn/post/552.html</guid><description><![CDATA[<p>因为我post到msdn了，想问问为什么，所以开始用鸟文写的。见谅。我鸟文实在不好。</p><p>try this code, set two breakpoint at the red text.<br />先在vs里面试试写下面的这个代码，两个红色的是两个断点，别忘了加上。</p><p>class HelloWorldHandler : IHttpHandler<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void ProcessRequest(HttpContext context)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="background-color: #ff0000"> </span><span style="color: #ff0000"><span><b>context.Response.Clear();</b></span></span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //在这个断点触发的时候关上浏览器噢！You must close your browser at this breakpoint，<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; context.Response.OutputStream.Write(new byte[]{1}, 0, 1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; context.Response.Flush();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>&nbsp;<span style="background-color: #ff0000"> </span><span style="color: #ff0000"><span><span>var x = context.Response.IsClientConnected;</span></span></span></b><span style="background-color: #ff0000"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这个时候你发现x是false,如果你看到x=false了那么下面你就能重现我看到的东西了，也就是这个线程不被销毁。 When The x is false then step over next, you will see the thread in server do not destroy.，<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; context.Response.End();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public bool IsReusable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />&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; return true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }&nbsp;</p><p>//www.dc9.cn<br />&nbsp;----------------</p><p>&nbsp;In order to keep the asp.net development server running ,I use chrome. of course, you can use IE to test this code, if you can keep asp.net development server running when close the IE window.</p><p>&nbsp;因为我用ie做debugger的时候每次关上ie那个什么asp.net development server就跟着关了，让我很光火。于是，在vs上面随便找个文件aspx的吧，点右键，点browse with..选择用chrome做默认的debugger,用这个的好处就是每次关了chrome 你还能监视到asp.net development server的线程。嗯。就这么点作用。要不我就用ie了。</p><p>OK, then we need a program to monitor the thread of the asp.net development server , so i use NetLimiter 2 Pro,</p><p>然后就是还需要用一个线程监视器，其实用什么无所谓，正好我装了一个netlimiter 2 pro这个就能监视线程了，就用这个了。</p><p>You can use any other software to monitor the thread of the asp.net development server .</p><p>&nbsp;当然也可以用其他软件监视asp.net development server</p><p>Ok , follow me ,let's go test1.</p><p>&nbsp;好了开始测试1。</p><p>1,First, press f5 to Debug. then the chrome window show, vs2008 break at first breakpoint,</p><p>1，首先按f5来调试，等到第一个断点触发的时候，把chrome关了。</p><p>2,Close the chrome window!</p><p>2，对，第一个断点出发的时候关了那个浏览器窗口</p><p>3.back to vs2008, press f10 to step over until the next breakpoint</p><p>3，然后回去vs2008，f10往下走</p><p>4, you will see var x = context.Response.IsClientConnected; the x is false. (&nbsp; the x must be false,or do it again )</p><p>4，走到var x = context.Response.IsClientConnected;的时候你发现x是false,如果x不是false说明你有什么地方没弄好，重来。</p><p>5, ok, continue to press f10 to step over context.Response.End();</p><p>5，然后继续f10执行完所有代码</p><p>6. ok , now all the code have been run. but you can see the current thread of asp.net development server is still alive by&nbsp; NetLimiter 2 Pro or someother monitor program.</p><p>6，这个时候你发现 NetLimiter 2 Pro 监视的刚才的asp.net的线程没有被销毁</p><p>------------------</p><p><img onload="ResizeImage(this,520)" src="http://www.dc9.cn/upload/200901291407585710.png" alt="" title=""/></p><p>&nbsp;<img onload="ResizeImage(this,520)" src="http://www.dc9.cn/upload/200901291415337866.PNG" alt="" title=""/></p><p>&nbsp;<img onload="ResizeImage(this,520)" src="http://www.dc9.cn/upload/200901291415544873.png" alt="" title=""/></p><p>------------------</p><p>Ok , now delete the line &quot;var x = context.Response.IsClientConnected;&quot;,let's go test2.</p><p>&nbsp;好了，现在你把var x = context.Response.IsClientConnected这句话注释掉，再测试一遍，就正常了！</p><p><br />Code Snippet 2</p><p>class HelloWorldHandler : IHttpHandler<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void ProcessRequest(HttpContext context)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="background-color: #ff0000"> </span><span style="color: #ff0000"><span><b>context.Response.Clear();</b></span></span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //在这个断点触发的时候关上浏览器噢！You must close your browser at this breakpoint，<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; context.Response.OutputStream.Write(new byte[]{1}, 0, 1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; context.Response.Flush();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //var x = context.Response.IsClientConnected;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //When The x is false then step over next, you will see the thread in server do not destroy.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; context.Response.End();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public bool IsReusable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />&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; return true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }&nbsp;</p><p><br />Ok , follow me ,let's go test2.</p><p>&nbsp;下面开始测试2</p><p>1,First, press f5 to Debug. then the chrome window show, vs2008 break at first breakpoint,</p><p>1，f5 ，第一个断点到了，关掉浏览器</p><p>2,Close the chrome window!</p><p>3.back to vs2008, press f10 to step over until the next breakpoint</p><p>&nbsp;3，回到vs 执行完所有代码</p><p>4, ok, continue to press f10 to step over context.Response.End();<br />5. ok , now all the code have been run. you can see the current thread of asp.net development server is destroyed , by&nbsp; NetLimiter 2 Pro or someother monitor program.</p><p>5，你看到那个线程已经被自动销毁了。</p><p>---------------</p><p>&nbsp;<img onload="ResizeImage(this,520)" src="http://www.dc9.cn/upload/200901291416304360.PNG" alt="" title=""/></p><p><img onload="ResizeImage(this,520)" src="http://www.dc9.cn/upload/200901291416356056.PNG" alt="" title=""/></p><p>----------------</p><p>我靠，是不是很邪门。&nbsp;</p><p>Oh, It's strange!!!!<br />&nbsp;</p>]]></description><category>C#.Net 3.5</category><comments>http://www.dc9.cn/post/552.html#comment</comments><wfw:comment>http://www.dc9.cn/</wfw:comment><wfw:commentRss>http://www.dc9.cn/feed.asp?cmt=552</wfw:commentRss><trackback:ping>http://www.dc9.cn/cmd.asp?act=tb&amp;id=552&amp;key=1dcce6b2</trackback:ping></item><item><title>JSON.NET里面古怪日期转换成DateTime的方法</title><author>a@b.c (sipo)</author><link>http://www.dc9.cn/post/548.html</link><pubDate>Sun, 11 Jan 2009 21:12:19 +0800</pubDate><guid>http://www.dc9.cn/post/548.html</guid><description><![CDATA[ JSON.NET 日期 /Date(1145558371000+0800)/ 转换 DateTime的方法<br/><br/><p class="code"><code><br/>var&nbsp;text&nbsp;=&nbsp;"/Date(1145558371000+0800)/";<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;value&nbsp;=&nbsp;text.Substring(6,&nbsp;text.Length&nbsp;-&nbsp;8);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateTimeKind&nbsp;kind&nbsp;=&nbsp;DateTimeKind.Utc;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;index&nbsp;=&nbsp;value.IndexOf('+',&nbsp;1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(index&nbsp;==&nbsp;-1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;=&nbsp;value.IndexOf('-',&nbsp;1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(index&nbsp;!=&nbsp;-1)<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;kind&nbsp;=&nbsp;DateTimeKind.Local;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;=&nbsp;value.Substring(0,&nbsp;index);<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;long&nbsp;javaScriptTicks&nbsp;=&nbsp;long.Parse(value,&nbsp;System.Globalization.NumberStyles.Integer,&nbsp;System.Globalization.CultureInfo.InvariantCulture);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;InitialJavaScriptDateTicks&nbsp;=&nbsp;(new&nbsp;DateTime(1970,&nbsp;1,&nbsp;1,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;DateTimeKind.Utc)).Ticks;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateTime&nbsp;utcDateTime&nbsp;=&nbsp;new&nbsp;DateTime((javaScriptTicks&nbsp;*&nbsp;10000)&nbsp;+&nbsp;InitialJavaScriptDateTicks,&nbsp;DateTimeKind.Utc);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateTime&nbsp;dateTime;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(kind)<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;case&nbsp;DateTimeKind.Unspecified:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateTime&nbsp;=&nbsp;DateTime.SpecifyKind(utcDateTime.ToLocalTime(),&nbsp;DateTimeKind.Unspecified);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;DateTimeKind.Local:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateTime&nbsp;=&nbsp;utcDateTime.ToLocalTime();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateTime&nbsp;=&nbsp;utcDateTime;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/></code></p>]]></description><category>C#.Net 3.5</category><comments>http://www.dc9.cn/post/548.html#comment</comments><wfw:comment>http://www.dc9.cn/</wfw:comment><wfw:commentRss>http://www.dc9.cn/feed.asp?cmt=548</wfw:commentRss><trackback:ping>http://www.dc9.cn/cmd.asp?act=tb&amp;id=548&amp;key=a8b41edf</trackback:ping></item></channel></rss>
