В настоящее время я пытаюсь работать с DotLiquid на С# и заметил поведение, которое не совсем понимаю. Поскольку я не очень хорошо знаком с C#, я не могу точно сказать, связана ли моя проблема с самим C# или с DotLiquid, поэтому, пожалуйста, потерпите меня. знак равно
У меня есть очень простой index.liquid
, которому я пытаюсь передать объект Table
. Для начала я переопределил 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
, что означает, что я каким-то образом неправильно загружаю свой шаблон. Глядя на Попробуйте использовать DotLiquid с С#, я бы подумал, что я Я правильно загружаю шаблон, и использование File.ReadAllText(templatePath));
показало мне, что templatePath
указывает на правильный файл.
Это показывает мне, что я не понимаю что-то очень простое в Template.Parse()
или Template.Render()
, где исходный код не дает мне понимания, которого мне не хватает, поэтому, надеюсь, вы сможете мне помочь.