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);
这个库的 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);