2017-10-20 82 views
0

我正在創建一個代碼生成項目,我想動態地創建功能結構。我發現你可以爲一個結構定義函數,但是我想動態地生成名字,返回值和函數內部的任何語句。我想一個字符串可以讓我做到這一點,但我不知道如何將字符串轉換爲函數。這是否有可能,如果沒有,是否有可能動態生成CFC?coldfusion字符串函數或動態cfc

<cfset j = structnew()> 
<cfset j.test = evaluate('function(){ return "test"; }')> 
<cfdump var="#j#"> 
<cfabort> 
+0

我不喜歡這種方法。我只是沒有職能進入和退出的原因。我通常認爲變量變化,但不是功能。 –

+1

@JamesAMohler並不是這個函數經常改變,而是使用一個通用結構來定義函數。 IE在json對象中定義我的函數信息,然後能夠在javascript,coldfusion,c#或任何其他我想要的語言(只要我爲該語言寫了一個生成器)中生成相同的函數。 – Silas

回答

2

您可以動態創建.cfc你可以動態創建一個.CFM以同樣的方式。

第1步 - 創建文件內容作爲字符串變量。

第2步 - 使用cffile寫入文件。

第3步 - 將文件放入頁面。使用.cfm文件,這將是一個<cfinclude>標記。使用.cfc文件,可能是一個createObject(函數)

第4步 - 使用該文件中的代碼。

第5步 - 刪除文件。