Библиотека C# для легкого динамического отражения

Прагматически настроенный программист был довольно хорош. Однако тот, который действительно оказал влияние, когда я начинал, был:

Системные Секреты Программирования Windows 95"

я знаю - это звучит и выглядит немного дрянным на внешней стороне и вероятно датировалось немного - но это было потрясающим объяснением внутренностей Win95 на основе Авторов (Matt Pietrek) расследования с помощью его собственных собственных инструментов - код, для которого шел с книгой. Примите во внимание, что это было перед целой вещью с открытым исходным кодом и Microsoft было все еще довольно уклончиво о выпуске документации внутренностей - уже не говоря об источнике. Была некоторая кавычка там как, "Если Вы работаете через некоторую проблему и поражаете некоторый камень преткновения тогда, необходимо остановить и действительно изучить глубоко, что часть и действительно понимает, как это работает". Я нашел, что это довольно хороший совет - особенно в эти дни, когда Вы часто имеете источник для библиотеки и можете пойти, смотрят. Его также вдохновленный меня, чтобы любить погружаться во внутренности того, как системы работают, что-то, что оказалось неоценимым в течение моей карьеры.

, О, и я также добавил бы эффективный .net - большое объяснение внутренностей.Net от Don Box.

6
задан pistacchio 22 July 2009 в 13:21
поделиться

6 ответов

есть библиотека LinFu , которая может делать много других интересных вещей, кроме отражения ... попробуйте

4
ответ дан 10 December 2019 в 02:51
поделиться

На мой взгляд, я не думаю, что отражение может стать проще в использовании, чем сейчас. Практически вся основная функциональность заключена в классе Type. Просто найдите время, чтобы узнать, как это работает, и вам не понадобится еще один ненужный слой поверх него.

В частности, вы можете делать «сложные вещи», создавая такие унифицированные объекты:

// Instantiates an uninitialized object of the specified type.
var newObject = (MyObject)FormatterServices.GetUninitializedObject( elementType );
2
ответ дан 10 December 2019 в 02:51
поделиться

Есть несколько интересных ReflectionHelpers .

1
ответ дан 10 December 2019 в 02:51
поделиться

Если рефлексия затруднительна, возможно, у вас нет полного понимания основ .Net. Возможно, вы захотите попробовать учебник вроде this .

1
ответ дан 10 December 2019 в 02:51
поделиться

Отражение по определению сложно. Это уровень косвенности, накладываемый на всю структуру объекта. Я не совсем уверен, как можно сделать это проще, не ограничивая его возможности.

1
ответ дан 10 December 2019 в 02:51
поделиться

Сборка модульного теста MS имеет PrivateObject и PrivateType, которые делают доступ к частным экземплярам / членам типа довольно простым.

0
ответ дан 10 December 2019 в 02:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: