05 2009 档案
摘要:先看下面的例子:view plaincopy to clipboardprint?staticvoidMain(string[]args) { List<string>l=newList<string>(); l.Add("a"); l.Add("b"); l.Add("s"); l.Add("t"); if(l.Exists(s=>s.Equals("s"))) {...
阅读全文
摘要:今天遇到一个问题,就是希望能够动态调用事件。传统的思路是,通过Reflection.EventInfo获得事件的信息,然后使用GetRaiseMethod方法获得事件被触发后调用的方法,再使用MethodInfo.Invoke来调用以实现事件的动态调用。 很不幸,Reflection.EventInfo.GetRaiseMethod方法始终返回null。这是因为,C#编译器在编译并处理由event...
阅读全文
摘要:WCF所支持的序列化格式分为Xml和DataContract两种(以下简称Xml格式和DataContract格式)。个人认为,Xml序列化格式是为了达到协议兼容而保留下来的传统格式。比如通过WCF实现基于xup协议的UI架构时,为了与xup协议保持兼容,在设置WCF属性时,建议采用Xml格式;而DataContract格式则是WCF提供的一种新的序列化格式。默认情况下,WCF采用DataCont...
阅读全文
摘要:上文对RSS的使用作了简介,现在对RSS的原理作个简单的介绍。首先应该了解到,你发表的博客内容(比如标题、作者、分类、发表时间、正文、Tag等信息)都会被保存到永久介质上(比如后台数据库、文本文件等,一般是关系型数据库)。现假设你的博客系统使用的关系型数据库,并且保存分类和文章的数据表有如下的数据:【“博客分类”表(Categories)】IDCategoryName1.N...
阅读全文
摘要:本文将简要介绍接口的显式实现。 先看下面的代码:interfaceIInterfaceA { intGetValue(intx); } interfaceIInterfaceB { intGetValue(intx); } classConcrete:IInterfaceA,IInterfaceB { } 在上面的代码中,Concrete类同时实现了IInterfaceA和IInterfaceB。...
阅读全文
摘要:轻叹世间事多变迁。有着传奇历史的Borland软件公司被英国Micro Focus公司以7500万美金的价格收购了! 记得李维先生曾经写过一本《Borland传奇》的书,当时(大概是2003年的时候)特别火,我也买来了一本,那是我能够静下心来通篇阅读完的第一本讲述IT公司经历的书。书中讲述了Borland公司的创建、发展以及其产品在商场局势影响下的发展路程。我关注Borland,是因为其具有传奇色...
阅读全文
摘要:我想业内人士和具有WEB专业知识的朋友对“RSS订阅”应该已经非常熟悉了,但更多的网友或许对这一有趣的事情无法理解,甚至根本没有听说过。今天从应用上简要介绍一下RSS订阅。 在WEB 2.0时代,博客已代替原来的日记,成为众多网友发布自己的日记、文章、评论和最新生活动态的主要场所。博主自然希望自己的博客能够被更多的朋友关注和收藏,而另一方面,自己也希望去关注他人的博客。早段...
阅读全文
摘要:在 上文中,我发布了一个在WLW中插入语法高亮代码的插件,该插件使用table的HTML 标记来分隔代码与行号。这样做的一个问题是,针对不同的博客主题,行 号列的宽度可能需要手动调整,而且大量的<td></td>标记使得博客文章变得很大。为此,我修改了插件源代码,使用空格来分隔代码与行号。这样做其实也有弊端,比如代码折行的时候,折行后的第一个字符会与行号的第一个字符同列,这...
阅读全文