字符串模板 - 从文件读取/从字符串读取时结果不同

时间:2011-03-21 14:19:54

标签: c# stringtemplate

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 个答案:

答案 0 :(得分:1)

&LT; ...&GT;是组文件中的默认分隔符。注意StringTemplate v4将在一周左右结束。