2017-10-20 51 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步 - 删除文件。