Как я могу использовать лямбда-выражение, чтобы получить как свойство «путь», так и значение?C#

Место общения программистов C#
Anonymous
Как я могу использовать лямбда-выражение, чтобы получить как свойство «путь», так и значение?

Сообщение Anonymous »

Я хочу сделать что-то похожее на то, что делают HtmlHelpers в ASP.NET MVC. Возьмите следующее:

Код: Выделить всё

@Html.EditorFor(model => model.SomeProperty.SomeInnerProperty)
HtmlHelper явно может получить не только значение SomeInnerProperty, но он также знает то, что я называю «путем» к этому свойству, поскольку он создает соответствующий элемент HTML с атрибутом:

Код: Выделить всё

name="SomeProperty.SomeInnerProperty"
Я хочу иметь возможность создать метод, который может получать как значение, так и «путь», аналогично тому, как это делают HtmlHelpers. Я немного поразмыслил над существующими HtmlHelpers, и это выглядело как кроличья нора. Мне удалось создать метод, который использует его следующим образом:

Код: Выделить всё

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

private void MyCustomMethod(Expression expression)
{
// I can inspect the expression object in the debugger here
}
При проверке объекта «выражение» я могу что-то выяснить посредством отражения, но я не уверен, насколько надежным будет мое решение, потому что я просто выясняю ситуацию посредством наблюдения. Кроме того, это кажется сложнее, чем должно быть; как будто я упускаю что-то простое.

Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/246 ... -the-value

Вернуться в «C#»