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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.11.2015, 15:06   #1  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,159 / 1289 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
DAX2009 аналог friend классов. Как сделать?
В DAX2009 есть семейство классов, являющихся чем-то типа контрактов данных. В основе иерархии класс NodeContract. Сами эти классы хранят некоторые данные, доступ к которым производится при помощи методов parm*.
Сами эти классы-контракты не знают как получать данные, данными их заполняет другое семейство классов "создателей", в основе иерархии которых лежит класс NodeCreator. Эти классы создают и заполняют определенные NodeContract.
NodeContract создаются фабрикой классов (пока это один статический метод в классе NodeContract, но, вполне возможно, что переделаю на какой-то класс фабрики, а возможно и на семейство классов-фабрик). То же самое по поводу создания относится к семейству NodeCreator*.
Для тех, кто будет пользоваться семейством классов NodeContract* хотелось бы ограничить их создание только через использование семейства NodeCreator*.
В C++ я бы мог установить модификаторы friend. В C# разделением по файлам, мог бы определить видимость фабрик классов.
В DA2009 непонятно, как сделать так, чтобы классы NodeCreator* могли создавать экземпляры NodeContract*, но по другому их создать было бы нельзя (создать нельзя, использовать можно).
Если фабрики классов NodeContract* сделать публичными, то их может вызвать любой внешний код. Если сделать защищенными, то NodeCreator* их не сможет использовать.
Как сделать фабрики NodeContract* защищенными для всех, кроме NodeCreator*?
Понятно, что можно просто описать особенности в какой-то документации, но хотелось бы это реализовать на уровне кода.
Есть какие-то идеи?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Иерархия классов, как обновить? Raven Melancholic DAX: Программирование 3 11.05.2015 19:49
Сделать левый join или сделать динамическую группировку в GRID kadet DAX: Программирование 10 12.03.2013 12:07
В DAX2009 забыли сделать сторно по проектам через журнал ГК. Pustik DAX: Программирование 1 05.03.2011 00:07
Как сделать фильтр по группе пользователей? Zabr DAX: Программирование 12 08.04.2009 11:40
Заумный отчет по ОС, как сделать? Бриллиантик DAX: Программирование 13 09.07.2008 16:36

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:54.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.