如何将生成的代码添加到类型提供程序

时间:2016-01-24 17:18:58

标签: f# type-providers

我有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 主要问题是将生成的代码添加到程序集中,然后获取函数名称。

1 个答案:

答案 0 :(得分:5)

不幸的是,创建类型提供程序并不那么简单。类型提供程序不需要生成源代码,而是需要构建某个接口的实现,然后生成F#引用(这是一种表示源代码的数据结构 - 如LINQ表达式树)。

有关实施类型提供程序的详细教程,请参阅Michael Newton的Type Providers From the Ground Up和后续Type Providers From the First Floor