Понимание отражения - PullRequest
       9

Понимание отражения

6 голосов
/ 24 апреля 2010

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

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

Спасибо

Ответы [ 4 ]

9 голосов
/ 24 апреля 2010

Пожалуйста, сначала прочитайте о Отражении в Википедии. Затем проверьте Пространство имен Reflection в MSDN.

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

Вообще говоря, если ваша программа проверяет объект типы в время выполнения , то вы используете отражение.

Кстати, Сильные и Слабые являются атрибутами системы языковых типов, но не любого приложения или структуры (например, интерфейса и т. Д.), Написанных с использованием этот язык. то есть. "C # считается многими строго типизированным языком" .

1 голос
/ 24 апреля 2010

Кто сказал, что он "построен с использованием отражения"? Ваши коллеги?

Вообще говоря, использовать отражение - значит проверять или генерировать код во время выполнения.

Если приложение использует отражение, оно, вероятно, использует материал из пространства имен System.Reflection, поэтому, чтобы понять, в какой степени используется отражение, вы можете удалить ссылки на это пространство имен и посмотреть, что ломается ...

0 голосов
/ 25 апреля 2010

а) Приложение не может быть построено с использованием отражения. Отражение, скорее всего, является частью приложения. Точно так же, как наследование в случае одного родительского и 20 дочерних классов, как вы упоминаете.

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

в) так как его приложение .net, в случае vb.net, строка с чем-то вроде экземпляра объекта. проверить это

0 голосов
/ 24 апреля 2010

"Отражение: способность обнаруживать композицию типа (например, класса, интерфейса, структуры, перечисления или делегата) во время выполнения."

Я полагаю, что ваши коллеги имеют в виду, как они создают ваши объекты. Я уверен, что ваши объекты построены с использованием стандартного наследования.

...