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期望<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>相同
为什么在第一种情况下不起作用?我是不是遗漏了什么?
发布于 2011-03-21 14:50:04
<...>是组文件中的默认分隔符。注意: StringTemplate v4大约一周后就会出来。
https://stackoverflow.com/questions/5378903
复制相似问题