Статичекий анализ ипользуемого API
От: SuhanovSergey  
Дата: 11.09.16 17:44
Оценка: 22 (1)
Есть функция-пользователь некоего API. Задача — узнать какие части API эта функция использует. API состоит из графа объектов (интерфейсов). Функция принимает корневой объект. Нужно узнать какие свойства на каких интерфейсах функция вызывает. Анализ статический. Должен быть выполнен до вызова функции. Функций-пользователей много, API один. Функции и API под моим контролем, т.е. к ним можно предъявлять любые требования. Цель данного вопроса — избежать требования к Функциям декларировать, какие части API нужны. Зачем нужно декларировать? Чтобы не инициалировать ненужные части API. Ленивая инициализация чрезвычайно сложна в реализации.
Функция-пользователь может быть сколь угодно сложной, в общем случае она не сводится к Expression. Она может вызывать вспомогательные функции.
Пока что единтственное решение, что я вижу — это декомпиляция и анализ функций-пользователей с помощью Mono.Cecil.
Есть другие варианты?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.