У пользователя StackOverflow jolson был очень хороший фрагмент кода, который иллюстрирует, как можно регистрировать мантоды без использования строк, но деревья выражений here.Получить имя свойства, передав его методу
Возможно ли иметь что-то подобное для свойств вместо методов? Чтобы передать свойство (а не имя свойства) и внутри метода получить имя свойства?
Что-то вроде этого:
RegisterMethod(p => p.Name)
void RegisterMethod(Expression??? propertyExpression) where T : Property ???
{
string propName = propertyExpression.Name;
}
Спасибо.
Почему нужен TProp? Я тестировал, и он работает, но я понимаю, что мне нужно изучить деревья выражений. – 2008-11-13 10:02:31
@Vasi - тип лямбда должен быть явным. Вы не можете, например, просто использовать `Expression`. TProp здесь относится к «int» и т. Д., Который описывает свойство. Однако вы можете позволить компилятору понять это. – 2008-11-13 10:06:18