Здравствуйте, 0K, Вы писали:
0K>В итоге получился такой код для авто-генерации:
Причем тут дублирование кода? Где ты его усмотрел?
0K>Какие недостатки у подобного решения?
При усложнении генератора (особенно усложнении логики) он превратится в кашу. Он уже ею является.
Потом может случится так, что ты найдешь баг в сгенерированном коде и забыв что он генерирован поправишь его. После очередной перегенерации ты потеряешь изменения и получишь ошибку снова.
Кроме того кода находишь ошибку в сгенерированном коде (и знаешь что он сгенерирован) нужно искать участок генератора его породивший. Если объем генератор большой — это проблема.
Но это все проблемы твоего дремучего подхода. Кроме него существуют и более продвинутые. Например, использование T4. Его проблемой является то, что он генерирует текст, а в нем легко ошибиться. Еще более продвинутый подход использование макросов. Для них зачастую и рефлексия не нужна. Но тут уже нужен специализированный язык.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.