От: | Serginio1 | https://habrahabr.ru/users/serginio1/topics/ | |
Дата: | 22.11.23 12:18 | ||
Оценка: |
Про AspectC# и SourceWeave.NET вообще информации не нашел. Все остальное это изменение ILСуществует в основном три способа изменить поведение .NET-программ на этапе сборки:
Настройка на уровне исходного кода
Этот метод требует разбора исходного кода, его модификации и последующей компиляции с использованием стандартного компилятора. Недостатком является то, что для каждого из целевых языков должен быть написан синтаксический анализатор-рендерер. Однако этот метод допускает добавление конструкций к синтаксису.
Инструменты:
Аспект#
SourceWeave.NET
Написание собственного компилятора
Вы можете либо начать с нуля, либо использовать существующий компилятор с открытым исходным кодом, такой как gcc или Mono. Явным недостатком является то, что вам нужно написать свой собственный компилятор или расширить существующий, что может быть выполнимо не для всех. Однако такой подход предоставляет практически неограниченные возможности.
Инструменты:
ЭОС
Модифицируя код MSIL
Позвольте стандартному компилятору завершить свою работу, затем прочитайте скомпилированную сборку, измените ее и запишите обратно. Это подход, используемый PostSharp.
Инструменты:
PostSharp
Aspect.NET . Этот инструмент основан на Phoenix.
AspectDNG . Этот инструмент основан на Cecil.
ComposeStar / StarLight
Gripper Loom.NET
Phx.Morph/Wicca . Этот инструмент основан на Phoenix.