/// <summary> /// Initializes a new instance of the <see cref="GlassHtmlFacade" /> class. /// </summary> /// <param name="context">The context.</param> /// <param name="writer">The writer.</param> public GlassHtmlFacade(ISitecoreContext context, HtmlTextWriter writer, ITemplateBase templateBase) { _writer = writer; _glassHtml = new GlassHtml(context); TemplateBase = templateBase; }
/// <summary> /// 编译指定的模板类,并使用指定的模型和上下文执行模板。 /// </summary> /// <param name="context">解析执行使用的上下文。</param> public void Parse(TemplateContext context) { // 获取对应的模板类型。 Type templateType = GetTemplateType(context.InputReader, context.SourceFileName, context.Model == null ? null : context.Model.GetType()); object template; try { // 创建模板类型实例。 template = TypeHelper.CreateInstance(templateType); } catch (Exception e) { throw new RazorRuntimeException(e); } context.Razor = this; // 运行模板。 ITemplateBase t = template as ITemplateBase; if (t != null) { try { t.Execute(context); } catch (Exception e) { throw new RazorRuntimeException(e); } } else { MethodInfo m = templateType.GetMethod("Execute", new Type[1] { typeof(TemplateContext) }); if (m != null) { try { m.Invoke(template, new object[1] { context }); } catch (Exception e) { throw new RazorRuntimeException(e); } } else { throw new RazorRuntimeException("Method Not Found: void Execute(TemplateContext context);"); } } }
public RazorHelper(ITemplateBase templateBase) { _template = templateBase; }
/// <summary> /// Initializes a new instance of the <see cref="GlassHtmlFacade" /> class. /// </summary> /// <param name="context">The context.</param> /// <param name="writer">The writer.</param> public GlassHtmlFacade(ISitecoreContext context, HtmlTextWriter writer, ITemplateBase templateBase) : this(context) { _writer = writer; TemplateBase = templateBase; }