我想在只安装了.NET Framework 2.0的计算机上使用LINQ。
我已阅读有关LINQBridge的内容。但是,我不能简单地将“ 复制本地 ”设置为System.Core.dll
和System.Xml.Linq.dll
等引用的程序集,以获得我需要的功能吗?
有任何缺点吗?这甚至是允许的吗?
答案 0 :(得分:3)
.Net 3.5实际上只是.Net 2.0,还有一些额外的dll。没有3.5运行时。如果您包含所需的dll,应用程序将运行没有任何问题。
以下有关linq桥评论的文章:http://www.albahari.com/nutshell/linqbridge.aspx
首先,理解这一点非常重要 C#3.0和Framework 3.5是 旨在与CLR 2.0一起使用 - 相同 Framework 2.0使用的CLR版本。 这意味着C#3.0编译器 发出运行在同一个上的IL代码 虚拟机和以前一样。
这使得Framework 3.5仅仅是添加剂 正如Framework 3.0那样 含添加剂的附加物 增强现有的组件 2.0框架和CLR。所以没有什么可以阻止我们写我们的 拥有完成工作的组件 框架3.5(至少,关键 本地LINQ查询所需的位。)
然后编译器查找Where, OrderBy和Select方法。该 关键是它可以找到 适当命名的方法与 正确的签名(通常 扩展方法)。但事实并非如此 无论方法是什么组装 从。 LINQBridge只提供 这些方法的另一个来源 - 那 在功能上与那些相同 在框架3.5中实施 组件。