Создайте делегата из метода получения или установки свойства
Для создания делегата из метода вы можете использовать синтаксис безопасного типа:
private int Method() { ... }
// and create the delegate to Method...
Func<int> d = Method;
Свойство является оберткой вокруг метода получения и установки, и я хочу создать делегат метода получения свойства. Что-то вроде
public int Prop { get; set; }
Func<int> d = Prop;
// or...
Func<int> d = Prop_get;
Который не работает, к сожалению. Я должен создать отдельный лямбда-метод, который кажется ненужным, когда метод get в любом случае совпадает с сигнатурой делегата:
Func<int> d = () => Prop;
Чтобы использовать метод делегата напрямую, я должен использовать неприятное отражение, которое не безопасно для компиляции:
// something like this, not tested...
MethodInfo m = GetType().GetProperty("Prop").GetGetMethod();
Func<int> d = (Func<int>)Delegate.CreateDelegate(typeof(Func<int>), m);
Есть ли способ создания делегата в методе получения свойства напрямую безопасным для компиляции способом, аналогичным созданию делегата в обычном методе в верхней части, без необходимости использования промежуточного лямбда-метода?