Шаблон строки - результаты отличаются при чтении из файла / чтении из строки - PullRequest
0 голосов
/ 21 марта 2011
string template = "group simple; apply(it) ::= << $it:bold():italics()$ >> ";
StringTemplateGroup stg = new StringTemplateGroup(new StringReader(template));
stg.DefineTemplate("bold", "<b>$it$</b>");
stg.DefineTemplate("italics", "<i>$it$</i>");
StringTemplate st = stg.GetInstanceOf("apply");
st.SetAttribute("it", "name");
Console.WriteLine(st.ToString());

Результат выше: $ it: bold (): italics () $ Я ожидал <i><b>name</b></i>

Но когда шаблон читается из файла, он работает как положено.

StringTemplateGroup stg = new StringTemplateGroup("page", "../../Templates");
stg.DefineTemplate("bold", "<b>$it$</b>");
stg.DefineTemplate("italics", "<i>$it$</i>");
StringTemplate st = stg.GetInstanceOf("apply"); //apply.st => $it:bold():italics()$
st.SetAttribute("it", "name");
Console.WriteLine(st.ToString());

Выход соответствует ожидаемому <i><b>name</b></i>

Почему это не работает в первом случае? Я что-то упустил?

1 Ответ

1 голос
/ 21 марта 2011

<...> является разделителем по умолчанию в файлах группы. Примечание. StringTemplate v4 выйдет через неделю или около того.

...