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 @   吴建明wujianming  阅读(103)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示