2016-01-24 73 views
0

我有F#功能如何添加生成的代码输入提供商

generateCode params 

产生的F#代码(FS文件)。 我想编写Type Provider,它运行generateCode()并提供所提供的生成函数。

例如,我的函数生成:

module Calc 

open Operations 
let Calculate a b = add a b 

,我想有型提供商,提供这样的功能:

type MyType = MyTypeProvider<args> 
sum = MyType.Calculate a b 

UPD 的主要问题是生成的代码添加到汇编,然后获取函数名称。

回答

5

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

有关实现类型提供者的好教程,请参阅Michael Newton的Type Providers From the Ground Up和后续Type Providers From the First Floor

+0

我不需要代码生成器,我需要Type Provider,因为它可以在运行时运行我的函数,并提供生成的函数。 –

相关问题