<cfcomponent displayname="BeanDynamic.cfc">
<cffunction name="init" access="remote" output="false" returntype="Any">
<cfscript>
return this;
</cfscript>
</cffunction>
<cffunction name="onMissingMethod" access="public">
<cfargument name="missingMethodName" type="string" required="false" />
<cfargument name="missingMethodArguments" required="false" />
<cfscript>
var attribute = "";
if( compareNoCase(left(arguments.missingMethodName,3),"get") eq 0 ){
attribute = getMissingMethodName(arguments.missingMethodName);
return get(attribute);
} else
if( compareNoCase(left(arguments.missingMethodName,3),"set") eq 0 ){
attribute = getMissingMethodName(arguments.missingMethodName);
return set(attribute, arguments.missingMethodArguments[1]);
}
</cfscript>
</cffunction>
<cffunction name="getMissingMethodName" access="private" returntype="Any">
<cfargument name="missMethName" type="string" required="false" />
<cfreturn right(arguments.missMethName,len(arguments.missMethName)-3)>
</cffunction>
<cffunction name="get" access="private" output="false" returntype="Any">
<cfargument name="attribute" type="string" required="true" />
<cfreturn variables.instance[arguments.attribute] />
</cffunction>
<cffunction name="set" access="private" output="false" returntype="Any">
<cfargument name="attribute" type="string" required="true" />
<cfargument name="value" type="any" required="true" />
<cfset variables.instance[arguments.attribute] = arguments.value />
<cfreturn this />
</cffunction>
<cffunction name="getVars" access="remote" output="false" returntype="Any">
<cfreturn variables.instance>
</cffunction>
</cfcomponent>
Para Testar em seguida:
<cfscript>
BeanDynamic = createObject('component','BeanDynamic').init();
BeanDynamic.setNome('Fernando');
BeanDynamic.setEmail('fernando@teste.com');
</cfscript>
<cfoutput>
#BeanDynamic.getNome()#<br />
#BeanDynamic.getEmail()#
</cfoutput>



