动态地将DataSet映射到StringTemplate
我在Windows服务通知项目(.NET 4.0)中使用StringTemplate。我的目标是读入并处理定义查询和stringtemplate的XML文件。然后,该类将DataTable的结果绑定到模板中以进行电子邮件发送。下面是一个XML片段和LINQ语句以及用于执行绑定的C#。
<!-- XML Data Original-->
<Items>
<Item>
<Query>
Select name, title, date from People;
</Query>
<Template>
Welcome $name to $title$ on $date$.
</Template>
</Item>
</Items>
var dataTable = database.GetQuery(query);
var data = (from dataRow in dataTable.AsEnumerable()
select new
{
Name = dataRow.Field<string>("Name"),
Title = dataRow.Field<string>("Title"),
Date = dataRow.Field<DateTime>("Date")
}).Distinct();
stringTemplate.SetAttribute("Name", data.Name);
stringTemplate.SetAttribute("Title", data.Title);
stringTemplate.SetAttribute("Date", data.Date);
问题是上面的C#是静态的,我想让它动态化。如果我需要在XML查询元素和相应的模板字段中添加另一个字段,那该怎么办?
<!-- XML Data Modified-->
<Items>
<Item>
<Query>
Select name, title, date, location from People;
</Query>
<Template>
Welcome $name to $title$ on $date$ at $location$.
</Template>
</Item>
</Items>
DataTable包含新列,但是我的LINQ语句和绑定代码没有。我的问题是我可以采用什么策略来动态地从DataTable获取数据并将其绑定到我的stringtemplate?注意我目前正在使用LINQ,但解决方案不必。
没有找到相关结果
已邀请:
1 个回复
怪酞撩匹
模板: