что-то выглядит как какие-то страшные и ужасные хаки
Mihhail Maslakov
@ionoy
TypeInfo мне подходит например для реализации динамических VM в Xamarin.Forms. они там делают вызов GetTypeInfo и уже у него спрашивают какие есть свойства для биндинга
ну часть действительно хаки, спорить не буду
но эта штука не тянет за собой никаких зависимостей, работает исключительно на Expression'ах
Nikita Tsukanov
@kekekeks
а я такой сижу и думаю, как авалонию заставить работать вообще без System.Reflection
Mihhail Maslakov
@ionoy
т.е. работает с любой платформой .NET Standard 2.0
Nikita Tsukanov
@kekekeks
погоди, а как демка первая с сайта работает
ты там рирайтишь код?
Mihhail Maslakov
@ionoy
при компиляции я вставляю в методы код, который проверяет есть ли апдейт. если есть, то вызываем его
_
если нет, то продолжаем выполнение
Nikita Tsukanov
@kekekeks
а, то есть инструментация всего и вся
Mihhail Maslakov
@ionoy
угу
можно добавлять типы, члены типов и т.д.
есть ограничения конечно, но для базовых вещей работает неплохо
Nikita Tsukanov
@kekekeks
а апдейты ты докомпилируешь рослином?
Mihhail Maslakov
@ionoy
да
потом сериализую в XML и десериализую в ET
но рослин только на стороне разработчика, так что приложение не становится от этого тяжелее
что важно для мобильников, ну и вообще для скорости выполнения
Nikita Tsukanov
@kekekeks
т. е. MSIL конвертируется в итоге в ET
занятно
Mihhail Maslakov
@ionoy
сейчас это скорее Roslyn AST -> ET
хочу перейти на Roslyn IOperation -> ET
но работы и так дофига
ищу людей, кстати. так что если есть кто толковый на примете, посоветуйте пожалуйста
зарплату могу волне нормальную обеспечить
Nikita Tsukanov
@kekekeks
а по перфомансу твоё чудо-решение как?
это ж на каждый вызов проверки надо делать
плюс инлайнинг JIT-ом
Mihhail Maslakov
@ionoy
это инструмент времени разработки. если есть метод, который реально вызывается миллион раз в секунду, то его можно добавить в исключения
вообще я первоначально не предполагал инструментировать все методы по умолчанию
но мне кажется это будет более юзер-френдли вариант, чем заставлять пользователя вручную каждый метод добавлять
Nikita Tsukanov
@kekekeks
ну так-то да
посмотри ещё в сторону API профайлеров
Mihhail Maslakov
@ionoy
а так перформанс очень даже нормальный, на тех платформах которые поддерживают Emit и не полагаются на интерпретатор