Мне нужна помощь, когда дело доходит до динамической генерации кода из шаблона.
Шаблон будет заполнен ранее импортированными данными, которые должны заменить заполнители.
Редактировать: Сгенерированный код не нужно компилировать. Он будет использован в другой программе. Генерация запускается пользовательским вводом.
Проблема здесь в том, что может быть более одного атрибута, например. Атрибуты должны иметь свой собственный шаблон снова. Это снова может содержать ключевое слово для шаблона комментария и т. Д. (L oop невозможно). Комментарии привязаны либо к атрибуту, либо к самому классу, это означает, что должен быть способ их разделения.
Это пользовательский шаблон, который я использую: Edit2: Это только пример, сгенерированный код не обязательно должен быть C#, это может быть любое значение, выбранное пользователем в качестве шаблона.
###File
using System;
namespace {Namespace}
{
internal class {Classname}{Base}{Comment}
{
//Basic Attributes
{Attributes}
//Structured Attributes
{Structuredattributes}
}
}
###
###Attributes
internal {Datatype} {Attributename} { get; set; }{Comment}
###
###Base
: {Basename}
###
###Comment
// {Commentdata}
###
Объяснение:
{Word} is a placeholder. All Placeholders are predefined (for now)
###Word is the start, Word is the ID. That means this block defines a placeholders look.
### is the end
В настоящее время я работать с функцией Replace (Placeholder, data), но это не кажется хорошим решением.
Мне нужен шаблон, чтобы пользователь мог просто написать новый формат экспорта, не касаясь кода вообще. Пользователь может полностью определить внешний вид, а также. Все пробелы и линии будут расположены так же.
Может быть, у кого-то есть отличная идея и она может направить меня в правильном направлении. Я не возражаю против изменения формата шаблона, но мне нужна хорошая читабельность замены.
Спасибо!