_Core/Lang/Templating/Templater.cs

(完整代码) 1KB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ComLib.Lang.Templating
{
    /// <summary>
    /// Templating class for the javascript like language.
    /// Syntax similar to jquery templates/python-django templates.
    /// </summary>
    public class Templater
    {
        private static IDictionary<string, Func<ITemplateEngine>> _engines = new Dictionary<string, Func<ITemplateEngine>>();
        

        /// <summary>
        /// Registers a custom template engine.
        /// </summary>
        /// <param name="type"></param>
        /// <param name="engine"></param>
        public static void RegisterEngine(string type, Func<ITemplateEngine> engine)
        {
            _engines[type] = engine;
        }


        /// <summary>
        /// Render using default template engine similar to webforms.
        /// </summary>
        /// <returns></returns>
        public static string Render(string script)
        {
            ITemplateEngine engine = new TemplateEngineDefault(script);
            var finalscript = engine.Render();
            return finalscript;
        }


        /// <summary>
        /// Render using custom template engine.
        /// </summary>
        /// <returns></returns>
        public static string Render(string engineType, string script)
        {
            var templateEngine = _engines[engineType]();
            var finalscript = templateEngine.Render(script);
            return finalscript;
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。