Hello World
Spiga

归档:2009年09月

通过表达式树构造URL时忽略部分参数

2009-09-03 11:37 by 老赵, 5273 visits
摘要:您的使用ASP.NET MVC的时候,一定遇到过使用Post接受数据的Action方法。为了实现这个功能,我们必须在客户端准备一个form,并填写它的Action——也就是Post的目标URL。按照传统的做法,我们会使用表达式树来构造这个URL,但因为ASP.NET Routing在处理配置规则中没有标明的Route Values时,会将它们作为Query String拼接在URL后面。因此,我们需要得到一种“忽略”某个参数的方式。 阅读全文

您能看出这个Double Check里的问题吗?(解答)

2009-09-02 17:16 by 老赵, 8409 visits
摘要:已经很有很多朋友得到了结果,是由于m_categories过早初始化,而导致double check的验证条件被破坏(或者说,满足)。不过,这里我们可以再谈一些更深入地内容,例如Memory Consistency Model。 阅读全文

您能看出这个Double Check里的问题吗?

2009-09-02 15:11 by 老赵, 8547 visits
摘要:昨天在做code review时看到一位同事写了这样的代码。这段代码的目的使用Double Check的做法来保证线程安全的延迟加载。但是我看到这代码之后发现了一个问题,这个问题不是第一次出现。因此,我打算在博客上记录一笔,希望可以给更多人提个醒吧。 阅读全文

趣味编程:函数式链表的快速排序(参考答案)

2009-09-02 10:58 by 老赵, 6298 visits
摘要:之前我提出了一个“趣味编程”,模仿Haskell的方式对一个链表进行快速排序。在那篇文章中我解释了Haskell列表的结构,并给出了ImmutableList的基础实现。快速排序的例子很多,多做也没有意思。这题虽然打着“快速排序”的旗帜,但事实上这里的关键在于实现ImmutableList数据结构的相关操作——否则为什么叫“函数式链表”的快速排序呢?。 阅读全文

优化通过表达式树构造URL的性能

2009-09-01 19:29 by 老赵, 5495 visits
摘要:我们继续改进通过表达式树构造URL的方式。在上一篇文章中,辅助方法可以正确地识别了ActionNameAttribute,而这次改进的则是性能方面的问题。原先的代码使用了传统计算一个表达式树的方式:“使用LambdaExpression对象封装,再编译,最后执行”来获得一个Expression对象的值。但是,Compile方法的性能是比较低下的,如果密集地执行会对性能产生一定影响。我们可以使用FastLambda中的组件来优化这部分操作的性能。 阅读全文

通过表达式树构建URL时正确识别ActionNameAttribute

2009-09-01 14:25 by 老赵, 5156 visits
摘要:在MvcFutures项目中提供了一个辅助方法,可以将一个表达式树对象转化成一个RouteValueDictionary集合。只可惜,这个辅助方法的毛病比较多。例如,它直接把方法名作为action的值,而忽略了其上标记的ActionNameAttribute。这导致了某个被“改名”的Action方法一旦用在了表达式树中,最终得到的URL便是错误的。不过只需寥寥数行代码便可改变这个情况。 阅读全文
< Prev 1 2 3
使用Live Messenger联系我