Как я могу генерировать код при компиляции? - PullRequest
1 голос
/ 24 сентября 2010

Есть несколько инструментов, например PostSharp, которые генерируют код при компиляции.

Как это сделать? Кто-нибудь может привести простой пример?

1 Ответ

4 голосов
/ 24 сентября 2010

PostSharp - переписчик IL.Он загружает сборку, сгенерированную компилятором .NET, и модифицирует сгенерированный IL.Называть этот «генерирующий код» только технически точным, это, конечно, не тот код, который, скажем, компилятор C # может компилировать.

Делать это самостоятельно не совсем тривиально, нужно иметь черныйнавыки в понимании ил.Неправильное понимание может очень затруднить диагностику проблем.Я думаю, что есть несколько проектов с открытым исходным кодом, которые используют технику переписывания IL, например Spring.NET, они должны быть хорошей отправной точкой для правильного решения этой проблемы.Я вижу отличные хиты, когда гуглю "IL rewriter".Ожидайте, чтобы сжечь значительное количество времени на нем.Это также элемент с высоким уровнем обслуживания, новая версия .NET часто ломает переписчик.

...