2014-09-04 23 views
3

我有一种感觉,这是CF9一个bug,从这个看:How to specify argument attributes in CFscript? (CF9)CFSCRIPT组件的功能和returntypes

然而,如果没有,我正在写在一个CF9组件CFSCRIPT(纯),并尝试将参数作为用户定义的cfc类型传递。

public function init(required _lbr._core._sharing._access.accessLinkDAO oAccessLinkDAO) returntype="_lbr._core._sharing._access.accessLinkBusiness" { 

但是CF一直不断回访:

You cannot use a variable reference with "." operators in this context 

这事与CF9纯碎?

+1

这是相当冗长。我建议将'import _lbr._core._sharing._access。*'添加到CFC中,然后您可以简单地使用'public accessLinkBusiness函数init(必需的accessLinkDAO或oAccessLinkDAO)'另外... CFC路径中的所有下划线是什么。 ..曼很难阅读和打字。 – 2014-09-04 13:31:13

+0

是的,com.domain.app.package.MyComponent作为符号行业标准有什么问题?并def使用导入来缩略引用它。 – 2014-09-04 13:41:53

+0

@AdamCameron我以前曾试过这种方式,但遇到同样的错误,因此将其切换,看起来文档实际上并没有统一的方式。你使用的是哪个版本的CF。我认为这可能是一个已经在其中一个补丁中修复的CF9错误。 – Jarede 2014-09-04 14:02:32

回答

1

我已经确认这是CF9.0中的一个错误(并且固定在CF9.0.1或CF9.0.2中的一个;可能是9.0.1)。

但是修复很简单。问题只在于虚线路径,而@ScottStroz指出,你不需要它们。这工作得很好:

component { 
    public accessLinkBusiness function init(required accessLinkDAO oAccessLinkDAO) { 
     return this; 
    } 
} 

我干脆搬到返回类型,因为这只是它的正常的地方:它会为属性工作太(但语法是很可怕)。

如果您要引用的返回类型或参数类型的氯氟烃使用它们不是在同一目录作为CFC,使用import语句,例如,在这种情况下:

import _lbr._core._sharing._access.*;