Как я могу использовать лямбда-выражение, чтобы получить как свойство «путь», так и значение?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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