跳到主要内容
版本:Next

扩展Luban实现

在权衡灵活性和简便性后,luban没有使用插件机制,而是在源码工程中新增一些扩展项目来实现扩展。

创建扩展模块

源码中除了Luban.CoreLuban以外的项目都是扩展项目,开发者可以参考它们给Luban添加扩展模块。 SimpleLauncher会自动搜索模块名中包含Luban的模块,因此扩展模块名中最好都包含Luban,否则需要 自己使用SimpleLauncher.ScanResigerAssembly注册自定义的扩展类。

以创建Luban.Demo模块为例,创建扩展模块的步骤如下:

  • 创建项目 Luban.Demo
  • 在Luban项目中引用Luban.Demo项目
  • Luban.Demo项目中新增对Luban.Core的引用
  • 从Luban.CSharp项目中复制AssemblyInfo.cs到本目录

可扩展的部分

  • Pipeline
  • Schema Collector
  • Data Loader
  • CodeTarget
  • DataTarget
  • DataValidator
  • CodeStyle
  • PostProcessor
  • OutputSaver
  • TextProvider

将Luban嵌入到其他C#工程中

有时候需要在其他工具中嵌入Luban,而不是直接使用Luban命令行工具。嵌入操作如下:

  • 引用Luban.Core项目,强烈建议也引入那几个Luban.XXX.Builtin项目,因为它们包含了Luban所需要的核心默认实现
  • 使用SimpleLauncher类初始化环境
  • 使用DefaultPipeline或者自定义Pipeline运行生成管线