zoukankan      html  css  js  c++  java
  • LINQBridge让你的LINQ代码可在.NET 2.0下运行

    假如你已经喜欢上LINQ,并且已经离不开它,一写代码就会用到扩展方法,Lambda表达式和LINQ;但是恰恰,你无法说服你的客户的机器上都装上.NET 3.5,这时候怎么办呢?这时候,LINQBridge可以让你的问题迎刃而解。

    LINQBridge是《C# 3.0 in a Nutshell》的作者开发的一个程序集,它重新实现了.NET 3.5中所有标准的查询操作,以及泛型的Func和Action代理(delegate);通过利用VS2008的多定向(multi-targeting)特性,大家就可以在VS2008中使用C# 3.0的语法编写运行于.NET 2.0上的程序了。LINQBridge支持扩展方法、Lambda表达式和LINQ的基本语法(只能操作LINQ to Objects)。

    LINQBridge的工作原理是基于以下几个技术:

    1. .NET 3.5的CLR还是CLR 2.0,.NET 3.5只是添加一些额外的程序集,以及C# 3.0的编译器(主要针对一些新的语法)
    2. 在VS 2008中,不管把target设定为那个版本的.NET,都是使用C# 3.0的编译器(对此,我以前有随笔谈到过,在.NET 2.0中还是直接能用自动属性)
    3. C# 3.0的新特性其实是基于泛型和匿名代理的基础上的

    要使用LINQBridge,其实很简单,首先建立一个.NET 2.0的项目,或者把目标框架(Target Framework)改为.NET 2.0;然后把LINQBridge.dll引用进来;最后在代码文件中添加相应的命名空间(LINQBridge使用的命名空间和System.Core的一样),就可以编写LINQ代码了。

    以后,如果你要升级你的运行环境到.NET 3.5,只需要把LINQBridge的引用替换为System.Core就行了。无需更改任何代码。

    如果,程序运行的目标机器上安装了.NET 3.5的话,使用LINQBridge也不会产生任何冲突。

    上面谈到的都是要基于VS 2008来开发,当然在C# 2.0和VS 2005中还是可以使用LINQBridge的,但是没有了扩展方法、Lambda表达式和查询语法,查询操作的编写将变得非常笨拙。

    LINQBridge不仅对于无法马上部署.NET 3.5的客户机器有用,对于ASP.NET的程序也同样有用,比如你现在拥有一个ASP.NET 2.0空间,但是希望使用新的C# 3.0语法。不过由于LINQBridge不支持LINQ to SQL,所以要访问数据库的话,只有使用其他数据访问技术,如LINQ to NHibernate、LINQ to LLBLGen或LINQ to DB4O等。

    LINQBridge是免费使用的,并提供源代码。下载地址和英文详细说明为:http://www.albahari.com/nutshell/linqbridge.html

    分享到: 更多
  • 相关阅读:
    PythonのTkinter基本原理
    使用 Word (VBA) 分割长图到多页
    如何使用 Shebang Line (Python 虚拟环境)
    将常用的 VBScript 脚本放到任务栏 (Pin VBScript to Taskbar)
    关于 VBScript 中的 CreateObject
    Windows Scripting Host (WSH) 是什么?
    Component Object Model (COM) 是什么?
    IOS 打开中文 html 文件,显示乱码的问题
    科技发展时间线(Technology Timeline)
    列置换密码
  • 原文地址:https://www.cnblogs.com/redmoon/p/1241169.html
Copyright © 2011-2022 走看看