我想在只安装了.NET Framework2.0的机器上使用LINQ2.0。
我读过关于LINQBridge的文章。但是,我不能简单地将“复制本地”设置为引用的程序集(如System.Core.dll和System.Xml.Linq.dll )以获得所需的功能吗?
有什么缺点吗?这是允许的吗?
发布于 2011-05-11 15:19:07
.Net 3.5实际上只是带有一些额外dlls的.Net 2.0。没有3.5运行时。如果包含所需的dll,则应用程序将无任何问题地运行。
来自以下有关linq注释的文章:http://www.albahari.com/nutshell/linqbridge.aspx
首先,重要的是要理解
3.0和Framework3.5是为使用CLR2.0而设计的--这是Frame2.0使用的相同版本。这意味着C# 3.0编译器会发出与以前一样运行在同一虚拟机上的IL代码。
这使得Framework3.5可加性--就像Framework3.0是可加性的一样--包含了增强现有2.0框架和CLR的附加程序集。因此,没有什么可以阻止我们编写自己的程序集来完成Framework3.5的工作(至少是本地LINQ查询所需的关键位)。
然后编译器查找Where、OrderBy和Select。关键是它可以找到具有正确签名的适当命名方法(通常是扩展方法)。但是,这些方法来自哪个程序集并不重要。LINQBridge只是提供了这些方法的另一个来源--在功能上与Framework3.5程序集中实现的方法相同。
https://stackoverflow.com/questions/5966564
复制相似问题