Использование LinqBridge на веб-сайте .Net2.0 - PullRequest
3 голосов
/ 17 марта 2011

Кто-нибудь смог использовать Linqbridge на веб-сайте .Net 2.0? У меня нет проблем с использованием его в обычной консоли .Net 2.0, но когда я использую методы на веб-сайте, Я получаю

Feature 'extension method' cannot be used because it is not part of the ISO-2 C# language specification

Ответы [ 2 ]

2 голосов
/ 17 марта 2011

Я думаю, что сообщение об ошибке довольно ясно. Методы расширения не поддерживаются в 2.0. Если вы хотите использовать метод расширения в 2.0, вам нужно изменить его, удалив this и вызвать его явно.

Если у вас было:

public static class ExtensionMethods {
    public static bool IsOdd(this int x) {
        return x % 2 != 0;
    }
}

Тогда ExtensionMethods и код типа number.IsOdd() не будут компилироваться.

Вам нужно удалить this в сигнатуре метода IsOdd и вызвать его как ExtensionMethods.IsOdd(number), чтобы заставить его работать под 2.0.

Если я правильно помню, именно такой подход использовали авторы LinqBridge.

Надеюсь, это поможет.

0 голосов
/ 18 марта 2011

Возможно, вы путаете версии .NET и C #. LINQBridge поддерживает .NET 2.0, но вам все еще нужен C # 3.0 или более поздняя версия (т. Е. VS2008 или более поздняя версия) для компиляции кода с использованием метода расширения или синтаксического сахара LINQ. После компиляции сборка запускается без проблем в среде выполнения .NET 2.0. В этом преимущество LINQBridge.

...