AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.11.2018, 21:50   #1  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
технически у тебя два разных класса: исходный и его расширения. очевидно невозможно перекрывать методы расширений (они ж final) ни в классах наследниках, ни в их, наследниках, расширениях. поэтому, строго говоря, это вообще два разных метода у тебя, несмотря на то, что имена у них одинаковы.

если бы расширение класса-наследника "видело" все добавленные во всех расширениях методы класса-родителя, то потребовалось бы вызывать next. и наоборот, если бы расширенные методы класса-родителя трактовались как "родные", они были бы доступны к перекрытию, но ты не можешь вызвать super во втором методе.

так что IS и AS твои друзья тут
__________________
Felix nihil admirari
За это сообщение автора поблагодарили: trud (2), malex (1), ax_mct (3).
Старый 08.11.2018, 09:44   #2  
malex is offline
malex
Участник
 
164 / 19 (1) ++
Регистрация: 10.08.2004
Адрес: Тверь, Москва
Post
Цитата:
Сообщение от wojzeh Посмотреть сообщение
так что IS и AS твои друзья тут
Я так и поступил, но надеялся что это был workaround. Придется почти весь код из наследников переносить в родительский классы с кучей кейсов.

PS: Я все таки думал что на уровне своих методов в экстеншенах будет наследование. А то получается мы у себя в МС будем использовать наследование и override, а вы со своими ISV решениями мучайтесь как хотите и плевать что архитектура внутри у вас будет не очень и с кучей дублирования кода.

Последний раз редактировалось malex; 08.11.2018 в 09:46.
Старый 08.11.2018, 10:51   #3  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от malex Посмотреть сообщение
Я так и поступил, но надеялся что это был workaround. Придется почти весь код из наследников переносить в родительский классы с кучей кейсов.

PS: Я все таки думал что на уровне своих методов в экстеншенах будет наследование. А то получается мы у себя в МС будем использовать наследование и override, а вы со своими ISV решениями мучайтесь как хотите и плевать что архитектура внутри у вас будет не очень и с кучей дублирования кода.
А не думали над таким подходом:
1. Определить свои классы как наследники inventMov_purch, inventMov_Sales и тп
2. Переопределить с помощью CoC метод inventMovement::constructNoThrow(), так чтобы он возвращал экземпляры своих классов, вместо стандартных ?
Теги
chain of command, d365fo

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
erconsult: Copy-paste with keyboard script 2: from Excel to D365FO Blog bot DAX Blogs 0 03.08.2018 11:12
daxmusings: The Overall Concept of Extensions in AX 7 Blog bot DAX Blogs 0 14.09.2017 13:11
sertandev: AX7 Extensibility Overview – Part 2 : Code extensions Blog bot DAX Blogs 0 28.08.2017 19:11
daxmusings: The Overall Concept of Extensions in AX 7 Blog bot DAX Blogs 0 04.10.2016 12:11
goshoom: Class extensions Blog bot DAX Blogs 0 18.07.2016 17:11
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:51.