Как можно использовать T4 для преобразования классов из одного проекта в другой?
Предположим, у меня есть проект (скажем, ProjectA) с несколькими классами C#, и эти классы не ссылаются на какие-либо типы вне проекта и типа сборки System.dll. Классы в ProjectA могут иметь методы, свойства, поля и пользовательские свойства. Классы также могут существовать в разных пространствах имен.
Как можно использовать T4 для преобразования всех этих классов, включая методы, свойства, поля и пользовательские атрибуты, из ProjectA в связанный набор в другом проекте (скажем, ProjectB).
1 ответ
Вернер, ты можешь это сделать. Хорошая техника - использовать модель кода VS. Здесь есть несколько указателей на примеры: http://blogs.msdn.com/b/garethj/archive/2009/09/25/dte-and-t4-better-together.aspx
Вы будете использовать модель кода для чтения классов в виде метаданных без компиляции, а затем генерировать их с использованием этих метаданных в качестве входных данных. Возможно, вы захотите взглянуть на T4 Toolbox Олега Сыча ( http://t4toolbox.codeplex.com/), чтобы спроецировать вывод в дополнительный проект.