Я, вероятно, делаю что-то глупое, но здесь все идет.
Я пытаюсь получить FieldInfo из публичного события с помощью отражения.
Проверьте эту функцию:
public void PlotAllFields(Type type) {
BindingFlags all = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public;
FieldInfo[] fields = type.GetFields(all);
Console.WriteLine(type + "-------------------------");
foreach (var fieldInfo in fields) {
Console.WriteLine(fieldInfo.Name);
}
}
public class Bar : Foo {}
public class Foo {
public string Test;
public event EventHandler Event;
public event RoutedEventHandler RoutedEvent;
}
Вызов PlotAllFields (typeof (Foo));возвращает:
Вызов PlotAllFields (typeof (Bar));возвращает:
Я понимаю, что делегаты за событиями являются закрытыми полями, поэтому я не могу получить к ним доступ в подклассе.Пока все хорошо.
Тогда я попробовал: PlotAllFields (typeof (FrameworkElement));// из WPF
- _themeStyleCache
- _styleCache
- _templatedParent
- _templateChild
- _flags
- _flags2
- _parent
- _inheritableProperties
- MeasureRequest
- ArrangeRequest
- sizeChangedInfo
- _parentIndex
- _parent
- _proxy
- _contextStorage
Ну ... Где 14 событий класса FrameworkElement ???