jiniannet/jntemplate

ThrowExceptions 貌似不起作用

mrhuo opened this issue · 4 comments

mrhuo commented

以前版本,在遇到不认识得 tag 时,渲染为空。不会抛错,而 2.0.1 新版本倒有这个问题。测试代码:

static void Main(string[] args)
{
    Engine.Configure(c =>
    {
        c.ThrowExceptions = false;  //<------
        c.IgnoreCase = true;
    });
    var template = Engine.CreateTemplate("hello $model.Name, $model.name, $model.aa"); //<--- 这里会抛错
    template.Set("model", new User
    {
        Name = "name at here"
    });
    var result = template.Render();
    Console.WriteLine(result);
}
public class User
{
    public string Name { get; set; }
}

错误堆栈:

   at JinianNet.JNTemplate.Compile.TypeGuess.<Initialize>b__2_6(ITag tag, CompileContext ctx)
   at JinianNet.JNTemplate.Compile.TypeGuess.GetType(String name, ITag tag, CompileContext ctx)
   at JinianNet.JNTemplate.Compile.TypeGuess.GetType(ITag tag, CompileContext ctx)
   at JinianNet.JNTemplate.Compile.CompileBuilder.<Initialize>b__20_0(ITag tag, CompileContext c)
   at JinianNet.JNTemplate.Compile.CompileBuilder.GetCompileMethod(String name, ITag tag, CompileContext context)
   at JinianNet.JNTemplate.Compile.CompileBuilder.GetCompileMethod(ITag tag, CompileContext scope)
   at JinianNet.JNTemplate.Compile.CompileBuilder.DefineRender(ITag tag, CompileContext context, Type tagType)
   at JinianNet.JNTemplate.Compile.CompileBuilder.<GeneralDefaultRender>b__9_0(ITag tag, CompileContext scope)
   at JinianNet.JNTemplate.Compile.Compiler.Compile(ITag[] tags, CompileContext ctx)
   at JinianNet.JNTemplate.Compile.Compiler.Compile(String content, CompileContext ctx)
   at JinianNet.JNTemplate.Compile.Compiler.Compile(String name, String content, Action`1 action)
   at JinianNet.JNTemplate.CompileTemplate.Render(TextWriter writer, TemplateContext context)
   at JinianNet.JNTemplate.CompileTemplate.Render(TextWriter writer)
   at JinianNet.JNTemplate.TemplateExtensions.Render(ITemplate template)
   at ConsoleAppForTemplateEngine.Program.Main(String[] args) in C:\Users\MSI-NB\source\repos\WebApplicationDotnetCore\ConsoleAppForTemplateEngine\Program.cs:line 22

该问题确实存在,2.0 核心升级,在原有模板引擎的基础上新增了编译机制,部分配置还没来得及支持,将在后续版本中完善。

mrhuo commented

@jiniannet 想要知道,什么时候才能更新

一个月内会更新,
这种错误是编译型错误,在实际开发中应尽量避免!

mrhuo commented

做模板的前端人员并不完全知道完全的属性,以前的版本就做的挺好,可以自动忽略这种问题。