У меня проблема с получением частного метода с использованием отражения. Даже с BindingFlags.NonPublic и BindingFlags.Instance это не работает. HandleClientDrivenStatePropertyChanged определен в том же классе, что и метод CreateRadioPropertyInstances.
class Program
{
static void Main(string[] args)
{
RadioPropertiesState state = new RadioPropertiesState();
}
}
internal class RadioPropertiesState : BaseRadioPropertiesState
{
}
internal class BaseRadioPropertiesState
{
public BaseRadioPropertiesState()
{
CreateRadioPropertyInstances();
}
private void CreateRadioPropertyInstances()
{
// get the method that is subscribed to the changed event
MethodInfo changedEventHandlerInfo = GetType().GetMethod(
"HandleClientDrivenStatePropertyChanged",
BindingFlags.NonPublic | BindingFlags.Instance |
BindingFlags.IgnoreCase);
}
private void HandleClientDrivenStatePropertyChanged
(object sender, EventArgs e)
{
}
}
GetMethod возвращает ноль. В чем может быть проблема?
[отредактированный код]
class X
? Он загружается в другой домен или из удаленного источника, похожего на smt? - person alex.b   schedule 17.03.2012GetMethod
, но ничего не показал о результате). действительно полезно иметь образец, который мы можем просто скопировать, вставить, скомпилировать, запустить и немедленно убедиться, что проблема воспроизводима. К счастью, вашего кода было достаточно, чтобы решить проблему в этом случае — см. мой ответ — но имейте это в виду на будущее. - person Jon Skeet   schedule 17.03.2012