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?