我正在尝试实现一种方法,该方法将接受DataTable
并StringTemplate
返回数据的字符串表示形式。
示例代码:
// Here can be any table with any number of columns.
var table = new DataTable();
table.Columns.Add("StrCol", typeof(string));
table.Columns.Add("IntCol", typeof(int));
table.Rows.Add(new object[] { "Row1String", 1 });
table.Rows.Add(new object[] { "Row2String", 2 });
var data = from dataRow in table.AsEnumerable()
select dataRow;
var st = new StringTemplate("$items:{$it.StrCol$ $it.IntCol$}$");
st.SetAttribute("items", data);
Console.Write(st.ToString());
结果:
Class DataRow has no such attribute: StrCol in template context [anonymous anonymous]
Class DataRow has no such attribute: IntCol in template context [anonymous anonymous]
Class DataRow has no such attribute: StrCol in template context [anonymous anonymous]
Class DataRow has no such attribute: IntCol in template context [anonymous anonymous]
升级版:
我必须使用Antlr3.StringTemplate.dll版本3.1.0的StringTemplate
. 我决定尝试另一个版本并下载Antlr3.StringTemplate.dll版本3.3.0。一切正常。那么,有没有办法在DataTable
使用旧库时应用模板?