Wie kann ich einen Lambda-Ausdruck verwenden, um sowohl die Eigenschaft „Pfad“ als auch den Wert abzurufen?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie kann ich einen Lambda-Ausdruck verwenden, um sowohl die Eigenschaft „Pfad“ als auch den Wert abzurufen?

Post by Anonymous »

Ich möchte etwas Ähnliches tun wie die HtmlHelpers in ASP.NET MVC. Nehmen Sie Folgendes:

Code: Select all

@Html.EditorFor(model => model.SomeProperty.SomeInnerProperty)
Der HtmlHelper kann eindeutig nicht nur den Wert für SomeInnerProperty abrufen, sondern kennt auch den von mir so genannten „Pfad“ zu dieser Eigenschaft, da er das entsprechende HTML-Element mit einem Attribut erstellt:

Code: Select all

name="SomeProperty.SomeInnerProperty"
Ich möchte in der Lage sein, eine Methode zu erstellen, die sowohl den Wert als auch den „Pfad“ abrufen kann, ähnlich wie es die HtmlHelpers tun. Ich habe ein wenig über die vorhandenen HtmlHelpers nachgedacht und das sah nach einem ziemlichen Kaninchenbau aus. Ich konnte eine Methode erstellen, die es wie folgt nutzt:

Code: Select all

MyCustomMethod(model => model.SomeProperty.SomeInnerProperty);

private void MyCustomMethod(Expression expression)
{
// I can inspect the expression object in the debugger here
}
Wenn ich das Objekt „Ausdruck“ untersuche, kann ich Dinge durch Reflexion herausfinden, bin mir aber nicht sicher, wie robust meine Lösung wäre, weil ich Dinge nur durch Beobachtung herausfinde. Außerdem scheint es einfach schwieriger zu sein, als es sein sollte; Als würde mir etwas Einfaches fehlen.

Irgendwelche Ideen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post