2014-09-04 2 views
3

У меня такое чувство, что это ошибка в CF9, глядя на этого: How to specify argument attributes in CFscript? (CF9)cfscript функциональный элемент с типами объектов в аргументах и ​​returntypes

Однако, если нет, то я пишу компонент cfscript в CF9 (чистый) и попытка передать аргумент как тип определяемого пользователем 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 publicLinkBusiness init (требуется accessLinkDAO oAccessLinkDAO)' Также ... что со всеми подчеркиваниями в пути CFC. ..man - это то, что трудно читать и печатать. –

+0

Да, что не так с только com.domain.app.package.MyComponent как условный отраслевой стандарт? И def использовать импорт для сокращения ссылок на него. –

+0

@AdamCameron Я раньше пробовал это, но имел ту же ошибку, поэтому переключил ее, похоже, что у документов нет единого способа сделать это. Какую версию CF вы использовали. Я думаю, что это может быть ошибка CF9, исправленная в одном из патчей. – Jarede

ответ

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 _lbr._core._sharing._access.*; 

 Смежные вопросы

  • Нет связанных вопросов^_^