Прагматически настроенный программист был довольно хорош. Однако тот, который действительно оказал влияние, когда я начинал, был:
Системные Секреты Программирования Windows 95"
я знаю - это звучит и выглядит немного дрянным на внешней стороне и вероятно датировалось немного - но это было потрясающим объяснением внутренностей Win95 на основе Авторов (Matt Pietrek) расследования с помощью его собственных собственных инструментов - код, для которого шел с книгой. Примите во внимание, что это было перед целой вещью с открытым исходным кодом и Microsoft было все еще довольно уклончиво о выпуске документации внутренностей - уже не говоря об источнике. Была некоторая кавычка там как, "Если Вы работаете через некоторую проблему и поражаете некоторый камень преткновения тогда, необходимо остановить и действительно изучить глубоко, что часть и действительно понимает, как это работает". Я нашел, что это довольно хороший совет - особенно в эти дни, когда Вы часто имеете источник для библиотеки и можете пойти, смотрят. Его также вдохновленный меня, чтобы любить погружаться во внутренности того, как системы работают, что-то, что оказалось неоценимым в течение моей карьеры.
, О, и я также добавил бы эффективный .net - большое объяснение внутренностей.Net от Don Box.
есть библиотека LinFu , которая может делать много других интересных вещей, кроме отражения ... попробуйте
На мой взгляд, я не думаю, что отражение может стать проще в использовании, чем сейчас. Практически вся основная функциональность заключена в классе Type. Просто найдите время, чтобы узнать, как это работает, и вам не понадобится еще один ненужный слой поверх него.
В частности, вы можете делать «сложные вещи», создавая такие унифицированные объекты:
// Instantiates an uninitialized object of the specified type.
var newObject = (MyObject)FormatterServices.GetUninitializedObject( elementType );
Если рефлексия затруднительна, возможно, у вас нет полного понимания основ .Net. Возможно, вы захотите попробовать учебник вроде this .
Отражение по определению сложно. Это уровень косвенности, накладываемый на всю структуру объекта. Я не совсем уверен, как можно сделать это проще, не ограничивая его возможности.
Сборка модульного теста MS имеет PrivateObject и PrivateType, которые делают доступ к частным экземплярам / членам типа довольно простым.