Генерация кода из внешнего текстового шаблона. Должен ли я написать обычный инструмент C # или использовать инструмент текстового шаблона? - PullRequest
0 голосов
/ 29 мая 2011

До сих пор у меня был небольшой опыт работы с T4, поэтому я спрашиваю.

У меня такая проблема - вместо шаблона, который превращается в код C # (я бы тогда использовал T4), яесть внешний файл (шаблон), который я хотел бы преобразовать в код C #.Здесь (просто пример!) Я строю довольно ограниченную (очень ограниченную) ORM.Итак, мой шаблон выглядит следующим образом:

Entry
*ID int
*Lang string
Text string

, и его следует преобразовать в полный класс, который начинается следующим образом:

public class Entry
{
  public int ID { get; set; }
  public string Lang { get; set; }
  public string Text { get; set; }

  public object[] PrimaryKeys { get { return new object[] { ID, Lang }; } }

  public void ReadRecord(...
}

Вопрос - что такоемой следующий лучший шаг: должен ли я сам конвертировать или использовать T4 (или другой подобный инструмент).

Одно преимущество моего собственного инструмента, о котором я могу думать, это то, что IF у меня есть/ потратить достаточно времени, я мог бы опустить файл шаблона и создать C #, полагаясь непосредственно на структуру базы данных (в случае в этом ) вместо файла шаблона.

Во время ответа, пожалуйста, сделайте это ясно, если вы рекомендуетерешение в обоих случаях (ввод: текстовый шаблон или двоичный файл, например, db).

Примечание: пожалуйста, не начинайте с «почему вы не используете NHibernate / LS2 / EF»... ".Спасибо!

1 Ответ

1 голос
/ 29 мая 2011

Я думаю, что T4 будет отлично работать для ваших нужд.Ознакомьтесь с разделом «Текстовые шаблоны времени разработки T4» в этой ссылке MSDN .Он описывает чтение файла конфигурации XML для генерации кода.Вы в основном помещаете код, который читает входной файл, в первую часть файла .tt, а затем ссылаетесь на то, что прочитали, когда вы размечаете классы.

...