RegisterTemplate 类型错误 - C# .Net Handlebars

RegisterTemplate type error - C# .Net Handlebars

这个库的 docs 看起来很简单,但是尝试注册部分会引发类型转换错误:

string testname = "myName";
string testbody = @"my really simple test body";
Handlebars.RegisterTemplate(testname, testbody);

Argument 2: cannot convert from 'string' to 'System.Action<System.IO.TextWriter, object>'

C# 仍然有点新,但这与文档中的示例几乎相同,所以我无法想象我以某种方式错误输入了 testbody 字符串。

进一步研究

从字面上复制粘贴示例会破坏代码。看起来这可能只是一个垃圾库。

string partialSource = 
@"<strong>{{name}}</strong>";

Handlebars.RegisterTemplate("user", partialSource);

Argument 2: cannot convert from 'string' to 'System.Action<System.IO.TextWriter, object>'

静态 Handlebars.RegisterTemplate(string, string) 方法是在 this commit on January 31st 2017. The last NuGet release of Handlebars.Net 中添加的,时间是 2016 年 10 月 - 所以您还没有访问它的权限。

选项:

  • 等待它在 NuGet 上发布
  • 从 GitHub
  • 下载并在本地构建
  • 通过执行新代码的操作来有效解决它。

最后一个选项,我相信你应该可以替换成这个:

string testName = "myName";
string testBody = @"my really simple test body";
Handlebars.RegisterTemplate(testName, testBody);

var template = Handlebars.Compile(new StringReader(testBody));
Handlebars.Register(testName, template);