6 Stimmen

Erweiterungsmethoden funktionieren nicht für eine Schnittstelle

Inspiriert von der MVC Storefront ist das neueste Projekt, an dem ich arbeite, die Verwendung von Erweiterungsmethoden auf IQueryable, um Ergebnisse zu filtern.

Ich habe diese Schnittstelle;

IPrimaryKey
{
  int ID { get; }
}

und ich habe diese Erweiterungsmethode

public static IPrimaryKey GetByID(this IQueryable<IPrimaryKey> source, int id)
{
    return source(obj => obj.ID == id);
}

Angenommen, ich habe eine Klasse, SimpleObj, die IPrimaryKey implementiert. Wenn ich eine IQueryable von SimpleObj habe, existiert die GetByID-Methode nicht, es sei denn, ich habe explizit als IQueryable von IPrimaryKey gecastet, was nicht gerade ideal ist.

Übersehe ich hier etwas?

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