我有F#功能
generateCode params
在F#(。fs文件)上生成代码。 我想编写Type Provider,它运行generateCode()并提供生成的函数。
例如,我的函数已生成:
module Calc
open Operations
let Calculate a b = add a b
我希望Type Provider能够提供这样的功能:
type MyType = MyTypeProvider<args>
sum = MyType.Calculate a b
UPD 主要问题是将生成的代码添加到程序集中,然后获取函数名称。
答案 0 :(得分:5)
不幸的是,创建类型提供程序并不那么简单。类型提供程序不需要生成源代码,而是需要构建某个接口的实现,然后生成F#引用(这是一种表示源代码的数据结构 - 如LINQ表达式树)。
有关实施类型提供程序的详细教程,请参阅Michael Newton的Type Providers From the Ground Up和后续Type Providers From the First Floor。