Здравствуйте, Serginio1, Вы писали:
S>·>Ну добавь лог-стейтмент в это одно место.
S>Мне жалко тратить время. Я лучше потрачу на создание автомата.
Ты потратишь на порядки больше времени на отладку этого автомата и ещё потом на отладку отладочного кода.
S>>> Зачем если есть алгоритм создания обертки? Это проще, чем писать метод с параметрами и запихивать эти параметры в логи
S>·>Можно просто написать код, который делает что надо в нужном месте.
S>·>Ты предлагаешь писать генератор, который генерит этот же код, комментарий чтобы отметить вместо вставки, и код, который это всё связывает?
S> Да это проще чем на каждый чих писать обертки. Проще написать генератор кода по комментарию.
В современных редакторах есть разные макросы и шаблоны. Это всё автоматизируется. Вставится нужный кусочек кода, который можно тут же поглядеть и подправить если не совсем подходит. Это не проблема которая должна решаться в компиляторе.
S>Суть обертки это тот же AOP вывести в лог значения параметров и результат.
S>И таких мест может быть множество. Можно и все вызовы в методе обернуть.
S>И его нужно сделать один раз, а использовать потом постоянно. И наверняка уже кто то напишет генератор.
Потом тебе надо будет бороться со сценариями которые я упомянул
тутАвтор: ·
Дата: 23.11.23
.
Потом тебе надо будет бороться с некоторыми значениями, которые надо как-то по особенному логгировать. Скажем, параметром передаётся огромная коллекция и выводить её в лог устанешь, да и не надо. А массив надо, ВНЕЗАПНО окажется, выводить надо через String.Join. И ещё 100500 частных случаев.
Потом тебе надо будет придумывать как через этот комментарий протащить небольшой кусочек логики (ну там не весь HugeRequest param залоггировать, а только param.Id).
Потом ты нахрен плюнешь и пожалеешь о потраченном времени.
S>·>Эти твои проблемы решаются гораздо проще и надёжнее, без магии. Поэтому надо резать Оккамом.
S> С InterceptsLocation намного ускоряется создание кода для отладки.
Ты просто дальше носа не видишь.
S> Кроме того InterceptsLocation хорошь при AOT когда нужно выкосить рефлекшн, динамическую компиляцию итд.
S>В зависимости от опции компилятора, мы можем использовать разные версии
Не дай боже потом такой код придётся как шаред-компонент выложить. Будешь выклдадывать несколько бинарных версий с разными комбинациями ключей компилятора.