3 Stimmen

LinqBridge in .Net2.0-Website verwenden

Konnte jemand Linqbridge auf einer .Net 2.0 Website verwenden? Ich habe kein Problem, es in einer normalen .Net 2.0-Konsole zu verwenden, aber wenn ich die Methoden in der Website verwende, erhalte ich

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

2voto

neontapir Punkte 4600

Ich denke, die Fehlermeldung ist ziemlich eindeutig. Erweiterungsmethoden werden in 2.0 nicht unterstützt. Wenn Sie eine Erweiterungsmethode in 2.0 verwenden wollen, müssen Sie sie ändern, indem Sie die this und rufen Sie es explizit auf.

Wenn Sie das hätten:

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

Entonces ExtensionMethods und Code wie number.IsOdd() wird nicht kompiliert.

Sie müssen die this im IsOdd Methodensignatur und rufen sie als ExtensionMethods.IsOdd(number) um es unter 2.0 zum Laufen zu bringen.

Wenn ich mich recht erinnere, ist das der Ansatz, den die Autoren von LinqBridge verwendet haben.

Ich hoffe, das hilft.

0voto

Mauricio Scheffer Punkte 97391

Vielleicht verwechseln Sie .NET und C# Versionen. LINQBridge unterstützt .NET 2.0, aber Sie benötigen immer noch C# 3.0 oder höher (d.h. VS2008 oder höher), um Code mit Erweiterungsmethoden oder LINQ-Syntaxzucker zu kompilieren. Nach der Kompilierung läuft die Assembly ohne Probleme auf .NET 2.0-Laufzeiten. Das ist der Vorteil von LINQBridge.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X