Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > Генерация текста из шаблона с использованием C# |
Автор: WSairus 28.5.2013, 15:53 | ||||
Доброе время суток, прошу подсказать не слишком сложное решение для следующей задачи: нужно из программы на C# обрабатывать текстовые шаблоны, при этом используя значения переменных и еще некоторые синтаксические фишки. Файл должен быть внешним и загружаться по выбору. В шаблоне могут использоваться логические выражения, циклы, блоки - минимальный набор языка программирования. Пример шаблона:
Соответственно в программе:
Вроде есть генератор T4, но как загрузить произвольный файл я не разобрался. Есть ли готовые решения для подобных задач. |
Автор: gambit 29.5.2013, 11:34 |
Посмотри на хабре статья была, про юзание razor в отрыве от mvc Добавлено через 23 секунды http://habrahabr.ru/post/173923/ |
Автор: diadiavova 29.5.2013, 21:21 |
Да собственно вот тема http://msdn.microsoft.com/en-us/library/bb126519.aspx Но это возможно там, где на компе студия установлена, отдельно от студии движок вроде не поставляется. Есть поддержка T4 в SharpDevelop и MonoDevelop, в силу оупенсорсности проектов их библиотеки использовать можно, но насчет туториалов по поводу того, как это сделать, ничего сказать не могу, возможно придется разбираться методом научного тыка. Из общедоступных инструментов могу порекомендовать XSLT, во фреймворке есть все для обработки этого языка, а возможности у него очень неплохие, к тому же его расширять кодом можно, в том числе на C#. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51a4a8f06ccc19ea1b000002#findElement_E7045_51a647396ccc19f9210004e1_0 |
Автор: diadiavova 29.5.2013, 21:23 |
Вдогонку http://community.sharpdevelop.net/blogs/mattward/archive/2011/06/26/T4TemplatesInSharpDevelop.aspx http://mjhutchinson.com/journal/2010/05/03/t4_templates_monodevelop |
Автор: WSairus 30.5.2013, 13:49 |
gambit, большое спасибо. Использовал это решение - работает идеально. Только велосипедов делать не стал, а использовал RazorEngine - компиляция и выполнение в 1 строку кода + поддержка многопоточности. diadiavova, проблема была в том, что нужно загружать внешний файл и обработать его уже после компиляции. Как это сделать - я не разобрался, да и синтаксис у Razor намного компактнее. |