代码之家  ›  专栏  ›  技术社区  ›  Mikhail Shilkov

如何在构建时生成F#Azure函数存根?

  •  0
  • Mikhail Shilkov  · 技术社区  · 6 年前

    let doWork (item: string) = 
        printf "Hello %s" item
    

    [<FunctionName("DoWork")>]
    let DoWork([<QueueTrigger("myqueue")>] item: string) = doWork item
    

    在第20次这样做之后,我问自己是否可以在构建时生成带有属性的函数。像这样的

    let functionApp = generateFunctionsMagic [doWork; doWork2; doWork3]
    

    将扩展到3个带注释的方法。我可以用其他方法来注释要生成的内容。

    这样做的有效方法是什么?

    0 回复  |  直到 6 年前
        1
  •  1
  •   Community CDub    4 年前

    在F中使用codegen没有简单的方法#

    你可以根据 Fantomas .

    常规工作流程:

    1. 读取*.fs文件
    2. 分析AST
    3. 重写AST(如果是Fantomas,则添加 LongIdent
    4. 将文本写入*.fs文件

    你可以用Fantomas作为你自己的codegen工具。

    Ionide Analyzers . 但是他们不支持AST重写。AST只用于分析问题,然后你必须直接处理文本。

    我创造了 example 基于AST的codegen算法