摘要: WCF中对方法参数的校验实现方式 阅读全文
posted @ 2011-12-28 21:55 神八 阅读(2099) 评论(1) 推荐(0)
摘要: 昨天在调试WCF服务时,碰到个异常,异常信息都让人看不懂。之前也没碰到过,折腾了一会才弄明白原因。 像往常一样创建一个WCF库,就是可直接调试的那种WCF服务。然后加入了一个服务,该服务还用到了复杂自定义类型作为DataContract,并像往常一样启动调试,居然蹦出了一个错误提示框,里面有一些错误信息,命名空间“TestNamespace.System”中不存在类型或命名空间名称“Runtime”(是缺少程序集引用吗?),如下图:其中TestNamespace.System命名空间下是复杂类型所在的命名空间。出现这样的错误,一时让人毫无头绪。为什么回去自定义类型中去寻找Runtime和... 阅读全文
posted @ 2011-12-20 09:48 神八 阅读(578) 评论(0) 推荐(0)
摘要: 最近在做一个搜索程序的优化改进,将搜索结果按照查询的参数不同进行缓存。缓存的Key很自然的就想到了用查询字符串,而获取查询字符串的最简单方式是通过Request.QueryString.ToString()方法。查看了QueryString的定义类型是NameValueCollection,就误以为这是NameValueCollection的重写了ToString()的方法,于是放心地将代码转移到了业务逻辑层。因为还要重构查询参数,因此重新构建了一个NameValueCollection,并想当然地用ToString()的结果作为Key。但实际运行之后发现,每次的结果都一样的,都是第一次的.. 阅读全文
posted @ 2011-12-08 23:04 神八 阅读(2888) 评论(0) 推荐(0)
摘要: const和readonly关键字也是面试中经常考到的问题,通常都是用来表示一个不可变的变量成员,那么具体区别是什么?从用法上说,const只能以inline代码的形式定义,而readonly既可以以inline代码形式定义也可以通过构造方法定义。CLR中定义,readonly的变量只能在构造方法中赋值,而C#中inline代码实际上是构造方法调用的一部分,因此readonly的变量可以以inline的方式赋值。以上是语法方面的应用,那在实际上的用法上,还是有些微妙的变化,通常不易发觉,请看下面的代码在程序集ConstLib.dll中有一个类MyClass,定义了一个公开的静态变量MaxCou 阅读全文
posted @ 2011-11-29 21:04 神八 阅读(1413) 评论(1) 推荐(1)
摘要: 一些经典.net面试题里,经常会有关于new关键字的考察,其中肯定会问到new关键字用在方法前有什么用之类的,通常同学们都能答出是阻断继承或者说是为了表明与父类同名方法独立开。但是进一步询问为什么或讲讲原理时,大部分的猿人还是回答不上来的。下面简单分析一下,个人理解的实现原理。从一个经典的面试代码题入手,有如下题目(估计面霸们一看就知道答案了)View Code 1publicclassBook2{3publicvirtualstringGetDescription()4{5return"anormalbook";6}7}89publicclassAspNetBook:Bo 阅读全文
posted @ 2011-11-29 19:08 神八 阅读(861) 评论(0) 推荐(0)
摘要: 利用Bing的API开发的搜索工具(WCF+MVC) 阅读全文
posted @ 2011-11-27 23:16 神八 阅读(4814) 评论(1) 推荐(0)
摘要: 很久没有做xml方面的解析,今天接到一个小任务,需要解析xml里面的字段内容,顺带复习了一下xpath方面的知识。需要解析的xml是那种待namespace的文档,一开始解析就碰到问题,我就感觉是命名空间在作怪,印象中之前也处理过这种问题,但时间久远,都忘记了,也没有记录下来。折腾了一会总算找到了方法,.NET中读取带xml命名空间的xml文档的方式确实麻烦,不够直接。不管怎样,还是记录一下解决方法,省得以后又要被折腾一次。View Code 1StringReadertextReader=newStringReader(surveyProject.SurveryContent);2XPath 阅读全文
posted @ 2011-11-25 19:46 神八 阅读(1025) 评论(0) 推荐(0)
摘要: 今天碰到了一个不可思议的bug,新增的controller中任何action都无法访问,都是返回404错误。一般这种错误要么是拼写错误,要么是不小心给action加了post属性,但是经过初步的排查,没有发现问题。而原有的controller中任何action都访问正常,新增的action也没有问题,但是换到新创建的那个controller中,问题就出现。于是问题定位在新增的那个controller中。于是翻开mvc的教程,仔细回顾了一下MVC中路由定位controller和action的过程,也没发现问题。最后仔细比对了一下代码,居然发现新旧controller的命名空间不一样,然后有查.. 阅读全文
posted @ 2011-11-24 21:04 神八 阅读(2661) 评论(2) 推荐(0)
摘要: 最近在改进一个wcf程序时碰到了一个常见的问题,监听端口号冲突。按道理这种问题多半发生在同一个监听程序开了多个或者有其他程序占用了端口号引起的。于是按照常规的方式去检查,原以为一个很容易解决的问题,折腾了一小会没找出原因,以至于重启电脑这样的伎俩也用上了还没解决。怀疑是不是程序太复杂了,于是对程序进行了精简,仅保留了wcf相关的配置内容,如下:原配置文件 1<configuration>2<system.serviceModel>3<services>4<servicename="ComplexDataService.MyService&qu 阅读全文
posted @ 2011-11-24 12:30 神八 阅读(2285) 评论(1) 推荐(2)
摘要: 简要介绍ASPNET MVC中的错误处理实现方式 阅读全文
posted @ 2011-04-16 20:57 神八 阅读(19901) 评论(2) 推荐(0)