我有一个CFC,其属性我想通过一个函数返回:
public string function getApplicationSetting(required string setting)
{
return myCFC.getSetting()
}
问题是Setting
需要是动态的。如果它是一个结构,我可以这样做:
return myCFC.variables[arguments.setting]
换句话说,Setting
中的getSetting()
需要反映传入的参数。我接近这个错吗?有更好的方法吗?
答案 0 :(得分:4)
假设您在ColdFusion 8中,您将需要查看ColdFusion中的onMissingMethod()函数。
像这样的未经测试的示例我刚刚写了:
<cffunction name="onMissingMethod">
<cfargument name="missingMethodName" type="string">
<cfargument name="missingMethodArguments" type="struct">
<cfif left(arguments.missingMethodName, 3) eq "get">
<cfreturn variables[right(arguments.missingMethodName, len(arguments.missingMethodName)-3)] />
</cfif>
</cffunction>
如果您在ColdFusion 9中,那么如果您正确定义属性,则隐式getter已经成为交易的一部分。
Component Person accessors=true {
property firstname;
property lastname;
property age;
property city;
property state;
}
上面的组件将自动具有getLastname(),getFirstname()等
参考:http://www.rupeshk.org/blog/index.php/2009/07/coldfusion-9-implicitgenerated-cfc-methods/