模板插件


一、接口定义

  ITemplateProvider 定义了模板管理及生成代码的引擎,如果你要开发新的模板插件,可以引用 CodeBuilder.Core.dll,并实现 ITemplateProvider 接口。

namespace CodeBuilder.Core
{
    /// <summary>
    /// 模板提供者插件。
    /// </summary>
    public interface ITemplateProvider : IPlugin
    {
        /// <summary>
        /// 获取插件工作目录。
        /// </summary>
        string WorkDir { get; }

        /// <summary>
        /// 生成代码文件。
        /// </summary>
        /// <param name="option">模板选项。</param>
        /// <param name="tables">所选定的数据表。</param>
        /// <param name="handler">代码生成进度通知。</param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        Task<GenerateResult> GenerateFilesAsync(TemplateOption option, List<Table> tables, CodeGenerateHandler handler, CancellationToken cancellationToken = default);

        /// <summary>
        /// 获取所有模板定义。
        /// </summary>
        /// <returns></returns>
        List<TemplateDefinition> GetTemplates();

        /// <summary>
        /// 获取模板定义存储信息。
        /// </summary>
        /// <param name="definition"></param>
        /// <returns></returns>
        TemplateStorage GetStorage(TemplateDefinition definition);
    }
}