Я пытаюсь реализовать метод, который будет принимать 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]
UPD:
Я должен использовать Antlr3.StringTemplate.dll версия 3.1.0 из StringTemplate
.Я решил попробовать другую версию и скачал Antlr3.StringTemplate.dll версия 3.3.0 .Все отлично работаетИтак, есть ли способ применить шаблон на DataTable
, используя старую библиотеку?