Betrachten Sie den folgenden Code:
%Vor%Hier ist die Erweiterungsmethode:
%Vor% Gibt es eine Möglichkeit, dies zu tun? Ich dachte, dass diese andere Methode, die Expression<Func<T, object>>
anstatt Func<T, object>
verwendet, mir mehr Macht geben würde, um das zu finden, was ich brauche, aber ich weiß nicht, wie.
Dies ist das erste Mal, dass ich etwas so tief mit Linq gemacht habe, also vermisse ich vielleicht etwas Offensichtliches. Grundsätzlich mag ich die Idee, Lambdas einzubringen, damit ich die Kompilierzeit überprüfen kann, aber ich weiß nicht, dass meine Idee, wie ich sie in diesem speziellen Fall verwenden kann, funktionieren wird.
Danke
Hier ist eine sehr einfache und schnelle Möglichkeit, es in diesem Blog zu tun: Ссылка
%Vor%So gegeben:
Func func = Name = & gt; "Wert";
Sie können den Lambda-Parameter erhalten "Name" vom Funktionsdelegaten nach anrufend:
func.Method.GetParameters () [0] .Name (würde "Name" zurückgeben)
Hier ist die überarbeitete Hash-Methode von Andrey:
Hoffe es hilft, Patrick
Nur eine Randnotiz: func.Method.GetParameters () [0] .Name ist extrem schnell im Vergleich zum Kompilieren des Lambda und Extrahieren des Member-Ausdrucks, dann der Member-Info und dann des Namens .
Tags und Links .net c# linq reflection generics