Проекты

Reflection Search

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

  • Type GetEntityType() — Получить тип объекта, по которому будет выполняться поиск
  • Object[] GetSearchObjects() — Получить массив объектов по которым осуществить поиск
  • Object CreateEntityInstance(Object searchObject) — Создать экземпляр объекта по которому будет выполняться поиск (Тип ожидаемого объекта должен быть равен типу из метода GetEntityType), передав в качестве аргумента один элемент из массива полученного из метода GetSearchObject.
Search filters

Форма для поиска находится в меню Search→Reflection

Поиск работает по принципу ИЛИ. Т.е. если хоть один фильтр совпал, то объект добавляется в найденные.

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

  • Boolean
  • DateTime
  • Enum
  • Integer (Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Single, Decimal, Double)
  • String

Знаки сравнения (Если возможно)

  • == — Equals
  • != — Not equals
  • > — More
  • >= — More or equals
  • < — Less
  • <= — Less or equals
  • Содержит

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

Публичные методы

  • Boolean Search(Object target, String path, String sign, Object value) — Поиск в объекте через рефлексию искомой фразы
    1. target — Экземпляр созданного объекта, по рефлексии которго необходимо поискать (Не null).
    2. path — Полный путь с пространствами имён и классами и методами в котором необходимо поискать (Не null). (Данный параметр явно надо будет переписывать, ибо оно не соответствует стандартному Type.FullName. Пример: ComDescriptor.MetaData.1'GetEnumerator().Position)
    3. sign — Знак равенства или неравенства между значением элемента в объекте и искомым значением. Возможные варианты:
      • Equals
      • NotEquals
      • More
      • MoreOrEquals
      • Less
      • LessOrEquals
      • Contains
    4. value — Искомое значение объекта

Новая версия

Интерфейс с результатами поиска

Первая версия

Результат

Теги:

Скачать

Ссылки

Родительские файлы