• 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

     

    人工智能芯片与自动驾驶
  • 相关阅读:
    Javascript模块化开发2——Gruntfile.js详解
    Javascript模块化开发1——package.json详解
    数据库性能优化策略
    HTTP协议学习笔记
    Redis五种基本数据类型底层实现
    浅谈单元测试
    Lambda 表达式有何用处?如何使用?
    快捷键和常用的命令
    Homebrew安装和Mac使用
    为什么String要设计成不可变的?
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/14136632.html
Copyright © 2020-2023  润新知