我目前正在尝试在 C# 中使用 DotLiquid,并且我观察到了一种我不太了解的行为。由于我对 C# 不是很熟悉,我无法确定我的问题是与 C# 本身还是 DotLiquid 相关,所以请多多包涵。=)
我有一个非常基本的东西index.liquid
,我试图将Table
-object 传递给它。为了开始,我已经重写toString()
以简单地创建一个表示,现在,我稍后想要使用实际的对象。尝试使用模板时,这就是我所做的:
public static void createHTML(DataTable table)
{
string templatePath = @"C:\Path\To\index.liquid";
var template = Template.Parse(templatePath);
template.Render(Hash.FromAnonymousObject(new
{
table = DataMapper.createTable(table).toString()
});
using (StreamWrite file = new StreamWriter(@"C:\Some\Path\test.html"))
{
file.write(template.Render());
}
}
现在,当我打开这个新创建test.html
的 ,它只包含C:\Path\To\index.liquid
,这意味着我没有正确加载我的模板。看着Try to use DotLiquid with c#
我会认为我正在正确加载模板并使用 File.ReadAllText(templatePath));
向我展示了templatePath
指向正确的文件。
这表明我不了解一些非常基本的东西,Template.Parse()
或者Template.Render()
源代码没有为我提供我所缺少的洞察力,所以希望你能帮助我。