C# 在.Net2.0网站中使用LinqBridge

C# 在.Net2.0网站中使用LinqBridge,c#,.net-2.0,linqbridge,C#,.net 2.0,Linqbridge,有人能在.NET2.0网站上使用Linqbridge吗? 我在普通的.Net 2.0控制台中使用它没有问题,但是当我在网站中使用这些方法时, 我明白了 我认为错误信息非常清楚。2.0不支持扩展方法。如果您想在2.0中使用扩展方法,您需要通过删除this并显式调用来修改它 如果你有: public static class ExtensionMethods { public static bool IsOdd(this int x) { return x % 2 != 0;

有人能在.NET2.0网站上使用Linqbridge吗? 我在普通的.Net 2.0控制台中使用它没有问题,但是当我在网站中使用这些方法时, 我明白了


我认为错误信息非常清楚。2.0不支持扩展方法。如果您想在2.0中使用扩展方法,您需要通过删除
this
并显式调用来修改它

如果你有:

public static class ExtensionMethods {
    public static bool IsOdd(this int x) {
        return x % 2 != 0;
    }
}
然后
ExtensionMethods
和类似
number.IsOdd()的代码将无法编译

您需要删除
IsOdd
方法签名中的
this
,并将其称为
ExtensionMethods.IsOdd(number)
以使其在2.0下工作

如果我没记错的话,这就是LinqBridge的作者所使用的方法


希望这能有所帮助。

也许你混淆了.NET和C版本。LINQBridge支持.NET2.0,但您仍然需要C#3.0或更高版本(即VS2008或更高版本)才能使用扩展方法或LINQ语法编译代码。编译后,程序集在.NET 2.0运行时运行时不会出现问题。这就是林桥的好处

网站在哪里?代码隐藏?aspx?还有别的吗?@Mauricio,当你创建一个新项目时,你可以选择新网站。用那个。仅仅是一个没有代码的新创建的网站也可以。添加LinqBridge作为引用,并使用Linq进行一些调用,它将复制与我相同的错误get@C_Rance:奇怪的是,我希望在aspx中会发生这样的事情。。。但不是在编译代码上。这是编译时错误还是运行时错误?@Mauricio:幸好是编译时错误,所以在我编译完网站后,所有的错误都会显示出来。就intellisense而言,它工作得很好,当您构建它或将它分配给变量时,问题就会显现出来。您使用的是哪个版本的Visual Studio?所以您的意思是我必须使用代码文件并手动编辑它们的方法签名?是的。我怀疑扩展方法存在于从其他地方复制的代码中。它不应该出现在LinqBridge代码中,因为它是为.NET 2.0编写的。我编辑了.cs文件,并试图删除所有这些文件,但它给了我一些其他编译器问题。我猜他们使用的一些方法仍然需要“这个”。你知道如何取消ISO标准吗?一个普通的控制台应用程序工作正常,但不是一个网站。投票支持你试图帮助我谢谢你的投票。我不确定什么ISO标准会适用于这种情况。您是否碰巧引用了System.Core 3.5 DLL而不是2.0 DLL?不客气。我没有尝试引用3.5 DLL,但我相信在引用之后,我甚至不需要LinqBridge,因为如果我没有错的话,Linq依赖于这个引用。问题是,我的用户标准要求.NET2.0,我对LINQ有更多的经验,所以最终浪费了很多时间使用2.0,因为Im不像家人一样。事实上,如果是这样,我已经没有问题了。我做的第一次尝试是从他们的站点下载LinqBridge dll并添加对它的引用。正如我提到的,我已经在.NET2.0控制台应用程序上进行了测试,它运行良好。但是在一个网站项目上以同样的方式做,我失败了。因此,从linqbridge下载的dll确实包含扩展方法
public static class ExtensionMethods {
    public static bool IsOdd(this int x) {
        return x % 2 != 0;
    }
}