2016-01-24 64 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,因爲它可以在運行時運行我的函數,並提供生成的函數。 –

相關問題