Следующий код не удается найти частные поля, например, если хозяин является Application.Current
и член является «_ownDispatcherStarted», он возвращает пустой массив, но если если Я ищу частную собственность, например member является «ParkingHwnd», он возвращает массив длиной 1; он находит это нормально. Почему это?Не удается получить доступ частного поля с Type.GetMember в МОФ
var hostType = host.GetType();
var members = host.GetType()
.GetMember(member, Public | NonPublic | Instance);
Хороший улов. Я попробовал это и никуда не ушел. Я проходил в флаге «FlattenHierarchy», но, оказывается, вы не получите унаследованных частных полей: «Указывает, что должны быть возвращены общедоступные и защищенные статические члены в иерархии» –
Да, «FlattenHierarchy» для статических членов. В документации подразумевается, что члены экземпляра должны быть включены по умолчанию, и вы можете отказаться от их включения в 'DeclaredOnly', но мое тестирование не показало этого результата. –
Спасибо Джонатану, это дает мне другое измерение, над которым нужно работать. Я вижу, что вы имеете в виду под 'Application.Current', фактическим типом является' MyApplicationNamespace.App' –