Показать сообщение отдельно
Старый 14.02.2017, 10:15   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
и еще... извините.

это вам только кажется, что вы сделали универсальное решение, которое позволяет работать с любыми строчками.
Цитата:
Сообщение от Avalon Посмотреть сообщение
X++:
        '            object  =   new '  +   currencies.ServiceReferenceName  +   '.AxCurrencyPortTypeClient("AxCurrencySoap");'    +   '\n'    +
на самом деле у вас доступны только те значения, для которых есть классы в коде.
если в коде только 3 (три) класса, то другие строчки приведут к ошибке в runtime.

другими словами, вы нисколько не приблизились к универсальности.
зато:
= перевели все ошибки в runtime
= сильно затруднили диагностику ошибок (теперь будет выдаваться ошибка компиляции вместо ошибки "неправильная строка")
= сильно затруднили себе жизнь с runbuf, правами и обвязкой

для таких задач делают семейство классов с construct
в construct передают параметр и явно пишут что он может создавать.
когда добавляется новый класс наследник, программист должен будет расширить construct в базовом классе.

это паттерн, который используется повсеместно во всей аксапте.
поищите в коде примеры