Comments 8
Важно понимать, что универсальный генератор не написать. Конкретно для данного кейса переиспользовать можно довольно мало. Эта задача была разовым большим рефакторингом и соответвенно, генератор был заточен имеено для ее решения.
Нет, безусловно есть наработки, есть некий набор базового функционала, который можно использовать в других похожих задачах. Давайте, конкретизируем. Если надо будет сделать тоже самое, но скажем на другом траспорте, то переиспользовать можно довольно много: работа с деревом, поиск объектов и типов, тестирование. А это процентов 60, примерно.
Из собственного опыта подобных массированных авто-рефакторингов - переиспользуется в основном ноу-хау и какие-то низкоуровневые хелперы, так как кодогенератор сам по себе заточен под конкретное изменение. Но чем чаще делаешь подобные трюки, тем легче видеть сценарии, куда ещё можно применить кодогенерацию для повседневных рутинных задач ;)
Знакомство с .Net Compiler Platform