CodeGen API分析

CodeGen API分析

作为使用命令行界面的替代方法,开发人员可以使用核心CodeGen环境编写自定义工具或实用程序来生成代码,从而将CodeGen更紧密地集成到开发环境中。             

为了实现这一点,CodeGen提供了一个.NET API,开发人员可以直接对其进行编码以生成代码。CodeGen API中的主要类有:

CodeGen.Engine.CodeGenTaskSet

CodeGen.Engine.CodeGenTask

CodeGen.Engine.CodeGenerator

CodeGen API Example

这是使用codegen API的一个非常简单的示例。此代码段基本上与使用命令行相

同:

codegen -s CUSTOMER -t DataClass -r –v

下面是示例代码:

;;Create a new task set
data taskset = new CodeGenTaskSet()
taskset.LoggingLevel = LoggingLevel.Verbose

;;Create a task and define what it shold do
data task = new CodeGenTask()
task.Structures.Add("CUSTOMER")
task.Templates.Add("DataClass")
task.ReplaceFiles = true

;;Add the task to the task set
taskset.Tasks.Add(task)

;;Create a code generator and tell it about the task set
data generator = new CodeGenerator(taskset)

;;Generate the code
generator.GenerateCode()

;;Did it work?
if (taskset.Complete) then
          ;;Good to go
else
          ;;Something failed!

当执行此代码时,不会看到任何事情发生,因为codegen API没有实现任何

UI。但是,如果想查看作为其处理的任务集生成的消息,可以针对其中一个注册

一个事件处理程序方法taskset.Messages.CollectionChanged或者

task.Messages.CollectionChanged并在消息生成时监视/报告这些消息。例如,如果

在控制台应用程序中,可以将消息记录到标准输出,如下所示:

lambda messageFromTaskSet(sender, e)
begin
          if (e.Action==NotifyCollectionChangedAction.Add)
          begin
                    data message, String
                    foreach message in e.NewItems
                              if (message!=^null)
                                        Console.WriteLine(message)

          end
end                    

;;Listen for messages from the taskset as it processes
taskset.Messages.CollectionChanged += messageFromTaskSet

 

posted @ 2020-12-15 06:36  吴建明wujianming  阅读(100)  评论(0编辑  收藏  举报