无法使用查找帮助程序编译模板 - 签名或安全透明度不兼容



我正在尝试在使用 .NET Core 2.1 和 Handlebars.Net 1.9.5 的控制台应用程序中使用以下模板 (TestTemplate(

<html>
<head>
<title>A title</title>
</head>
<body>
{{ > (lookup TemplateName)}}
</body>
</html>

所以带有 {{>(查找模板名称(}} 的行给我带来了问题。

这个想法是使用部分,其中部分名称稍后将通过传递 TemplateName 变量进行解析。

但是,当我尝试使用

var foo = Resource1.TestTemplate;
Handlebars.Compile(Encoding.UTF8.GetString(foo));

我得到以下异常:

System.ArgumentException:无法绑定到目标方法,因为其签名或安全透明度与委托类型的签名或安全透明度不兼容。 at System.Reflection.RuntimeMethodInfo.CreateDelegateInternal(Type delegateType, Object firstArgument, DelegateBindingFlags bindingFlags( at HandlebarsDotNet.Compiler.SubExpressionVisitor.GetHelperDelegateFromMethodCallExpression(MethodCallExpression helperCall( at HandlebarsDotNet.Compiler.SubExpressionVisitor.VisitSubExpression(SubExpressionExpression subex( at System.Linq.Expressions.ExpressionVisitor.VisitUnary(UnaryExpression node( at System.Linq.Expressions.UnaryExpression.Accept(ExpressionVisitor visitor( at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes( at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node( at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor( at System.Linq.Expressions.ExpressionVisitor.VisitUnary(UnaryExpression node( at System.Linq.Expressions.UnaryExpression.Accept(ExpressionVisitor visitor( at System.Linq.Expressions.ExpressionVisitor.VisitConditional(ConditionalExpression 节点( at System.Linq.Expressions.ConditionalExpression.Accept(ExpressionVisitor visitor( at System.Dynamic.Utils.ExpressionVisitorUtils.VisitBlockExpressions(ExpressionVisitor visitor, BlockExpression block( at System.Linq.Expressions.ExpressionVisitor.VisitBlock(BlockExpression node( at System.Linq.Expressions.BlockExpression.Accept(ExpressionVisitor visitor( at HandlebarsDotNet.Compiler.FunctionBuilder.Compile(IEnumerable1 表达式, 表达式父上下文, 字符串模板路径( --- 结束内部异常堆栈跟踪 --- at HandlebarsDotNet.Compiler.FunctionBuilder.Compile(IEnumerable1 表达式, 表达式父上下文, 字符串模板路径( at HandlebarsDotNet.Compiler.FunctionBuilder.Compile(IEnumerable1 表达式, String templatePath( --- 结束内部异常堆栈跟踪 --- at HandlebarsDotNet.Compiler.FunctionBuilder.Compile(IEnumerable1 表达式, String templatePath( at HandlebarsDotNet.Handlebars.HandlebarsEnvironment.Compile(String template(

我希望有人有一个想法,因为我已经搜索了很长时间。

好吧,我完全错过了我正在查看 HandleBars.js 文档。

在 HandleBars 中.js查找帮助程序是内置的,但到目前为止,它不在 .net 版本中。

所以你必须自己声明查找助手,在我的例子中是这样的:

Handlebars.RegisterHelper("lookup", (output, context, arguments) => { output.WriteSafeString(arguments[0]); }); 

希望它可以帮助别人。

最新更新