Почему я использовал бы Отражение в бизнес-приложении?

Как отметила Тициан Черникова, я просто использовал более старый компилятор Typescript. Eclipse позволяет вам использовать специфичный для проекта компилятор, но я не стал настраивать конфигурацию проекта.

6
задан Jon B 13 January 2009 в 19:50
поделиться

13 ответов

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

Мы также используем отражение экстенсивно в Шаблоне "фабрика". Методы создания объекта могут быть отмечены с атрибутами с, найдены с отражением и затем созданы нашей фабрикой.

На самом деле любое использование атрибутов использует отражение. При создании собственных атрибутов Вы будете использовать отражение для нахождения их на коде.

Мы также используем отражение, чтобы сгенерировать код. У нас есть клиент-серверное приложение, которое использует дистанционную работу.NET. Мы отмечаем вызовы в наш сервер с нашими собственными атрибутами и затем используем отражение, чтобы найти их и сгенерировать весь наш коммуникационный код, блок для сервера и один для клиента. Это сохраняет всю механическую работу ручного добавления в том же входе, синхронизации и коде дистанционной работы везде.

11
ответ дан 8 December 2019 в 04:32
поделиться

Отражение может помочь Вам написать больше удобного в сопровождении кода и уменьшить объем кода для некоторой определенной задачи.

Т.е. Вы могли записать простую оболочку или при помощи большого количества из если операторы, чтобы соответствовать команде или использовать отражение для генерации словаря, содержащего делегатов к методам, отметили с определенным пользовательским атрибутом для представления ее пользователю. С отражательным подходом такой метод только должен быть добавлен в единственном месте, и отражение заботится об остальных.

4
ответ дан 8 December 2019 в 04:32
поделиться

Это имеет вид загруженного вопроса, но некоторые причины приходят на ум:

  • Тестирование закрытых методов в модульных тестах.

  • Используя его к виду динамично с linq при имении только имени свойства в наличии.

  • Заполните свойство объекта на лету. Возможно, потому что Вы соответствуете свойству к datarow имени столбца или возможно и xml элемент. (Могло бы быть устаревшее использование),

  • Создание класса на лету.

2
ответ дан 8 December 2019 в 04:32
поделиться

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

2
ответ дан 8 December 2019 в 04:32
поделиться

Я определил атрибут DisplayName для своего Перечисления, таким образом, Вы заканчиваете:

перечисление {[DisplayName ("Открытый") открытый, [DisplayName ("Запрос на Кавычку") RFQ

}

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

Я буду использовать отражение, если я захочу обработать что-то на основе, он - тип. Таким образом, если я - переданный Тип A, идут оставленные, иначе идут право.

2
ответ дан 8 December 2019 в 04:32
поделиться

Можно создать пользовательские интерфейсы динамично на основе DTO, если Вы, оказывается, используете их.

1
ответ дан 8 December 2019 в 04:32
поделиться

при принятии "приложением направления деятельности" Вы имеете в виду "простое Приложение типа CRUD", затем Вы определили объем достаточно узко, что Вам, вероятно, не нужно отражение, чтобы заставить его работать - или даже сделать его лучше

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

Типичное приложение C должно сделать это? Нет, или редко.

Так же на Ваш вопрос, "Почему я использовал бы Отражение в бизнес-приложении?" ответ - то, что Вы, вероятно, не были бы, в то время как у других может быть умное использование для него, но на самом деле для основных Приложений типа CRUD это не "необходимо".

это не означает, что Вы не должны понимать это; знание, что это и что это может сделать, может означать различие между записью тонны хрупкого кода или небольшого изящного отражающего кода, если Вы когда-либо встречаетесь с чем-то более трудным или сложным, чем 'приложение направления деятельности' ;-)

1
ответ дан 8 December 2019 в 04:32
поделиться

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

1
ответ дан 8 December 2019 в 04:32
поделиться

Вероятно, использование:

0
ответ дан 8 December 2019 в 04:32
поделиться

Если Вы хотите реализовать Шаблон "фабрика", и избегать необходимости перекомпилировать код каждый раз Вы добавляете новый компонент на фабрике, Отражение может быть единственной опцией.

0
ответ дан 8 December 2019 в 04:32
поделиться

Мы используем отражение во многих местах, включая:

  • реализовать внедрение зависимости и шаблон "фабрика"
  • сериализация
  • управление поведением через атрибуты класса
0
ответ дан 8 December 2019 в 04:32
поделиться

Вот просто некоторые из многих образцов:

  • Автоузнайте и загрузите компоненты и сервисы в рамках Инверсии.NET Контейнера Управления, который мы используем с отражением.NET
  • Осуществите конструктивные ограничения по коду (т.е. "Все классы в Образцовом пространстве имен должны быть неизменными и serilizable") с находящимся в Cecil отражением (образец)
  • Добавьте исправность, и проверка проверяет к коду для создания ее более стабильной с помощниками реализованный с основанным на IL отражением (образец).
  • Свяжите средства управления UI и ошибочных поставщиков к бизнес-объектам и бизнес-правилам с отражением.NET на основе выражений Linq (образец).
1
ответ дан 8 December 2019 в 04:32
поделиться

Мы используем отражение, чтобы смочь отобразить средства управления от уровня UI непосредственно к свойствам бизнес-объекта в datalayer. Это позволяет Вам иметь 'универсальную' функцию на базовой форме где-нибудь, что 'автоматический заполняет' ФИЛИАЛ с данными UI и наоборот, не имея необходимость писать код для каждого управления и свойства на форме и объекте.

0
ответ дан 8 December 2019 в 04:32
поделиться
Другие вопросы по тегам:

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