随笔- 60
文章- 0
评论- 1248
阅读-
67万
08 2009 档案
Expression Tree 上手指南 (二)
摘要:上回我们说到Expression Tree是一种表示编程语言中“表达式”概念的树状数据结构,并且学习了从Lambda表达式自动生成表达式树的C#语法。那么它到底有什么用呢?其实上一回已经提到了Expression Tree的基本功能:分析表达式的逻辑、保存和传输表达式以及重新编译表达式。现在我们就分别来看这三项基本功能如何使用。
阅读全文
Expression Tree上手指南 (一)
摘要:大家可能都知道Expression Tree是.NET 3.5引入的新增功能。不少朋友们已经听说过这一特性,但还没来得及了解。看看博客园里的老赵等诸多牛人,将Expression Tree玩得眼花缭乱,是否常常觉得有点落伍了呢?其实Expression Tree是一个一点就透的特性,只要对其基本概念有了一定的了解,就可以自己发挥出无数的用法。特别是之前对Reflection,泛型等知识有过一些了解的话,就会发现Expression Tree的加入绝对是你工作中的得力助手。如果你是Expression Tree的新手,那么从本文开始,你就可以领略这一工具,之后再看老赵的文章就从容不迫了
阅读全文
手工解析.NET完全限定类型名称
摘要:大家都经常使用.NET反射,用内置的反射API就可以进行灵活而强大的操作。然而,有的时候我们需要某些反射的操作,但是却有不能加载包含所需类型的程序集。例如,我们要操作的类型是.NET Compact Framework或者Silverlight的类型,而我们的程序运行在桌面版本的.NET Framework上等等。实际上,我们有时仅仅需要非常简单的操作,例如从一个类型获得它的数组类型;将一个泛型类型的类型参数转变一下;改变一个类型的程序集版本或以上操作的逆向操作等。实际上,.NET类型的完全限定类型名称(Fully qualified type name)或称作Assembly qualified type name就包含以上操作所需的所有信息。只要解析这个字符串,就能进行以上简易的“离线反射”动作。
阅读全文