Вы, вероятно, не видите это много, потому что на самом деле это довольно сложно реализовать хорошо.Я уже некоторое время использую T4 для создания классов моделей из DTO WCF для использования в варианте WinForms MVP, и потребовалось довольно много времени, чтобы все заработало правильно.
Использование класса в качестве «данных»"источник шаблона довольно сложен сам по себе.Вам нужно будет выбрать между использованием отражения (или аналогичного API) для чтения скомпилированного IL или CodeDom для чтения исходного кода.Если вы решите работать со скомпилированными сборками, вам придется столкнуться с такими проблемами, как блокировка файлов и загрузка сборок, на которые есть ссылки.Если вы решите работать с исходным кодом, вам придется иметь дело с потенциально некомпилируемым кодом.
После того, как вы примете это решение, копирование свойств будет самой тривиальной вещью, которую вам нужно будет сделать.Вам также нужно будет принять решение о том, какие интерфейсы и атрибуты (если таковые имеются) в исходном классе следует переопределить / скопировать в сгенерированный класс.В зависимости от того, как вы реализуете такие вещи, как валидация, это может вызвать всевозможные небольшие проблемы.Есть также много забавных решений о том, как обращаться с иерархиями наследования и ссылками на другие классы моделей.
Все вышеперечисленное адресуемо, но подход "один размер подходит всем" будет довольно сложнымреализовать.Возвращаясь к «примерной» части вашего вопроса, есть также потенциальная проблема выполнения довольно большого количества работы без оплаты за нее.Я хотел бы поделиться T4, который я создал для генерации моделей, но он принадлежит моему работодателю, и у меня есть более подходящие вещи, чем свободное время, чем переосмысление подхода к публикации в Интернете ...