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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.03.2020, 19:29   #1  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Ax2009, Reflection, typeof
Как в Ax2009 получить объект System.Type для статических классов .NET Framework ?
Чтобы в X++ получить аналог следующего программного кода C# :
X++:
typeof(System.Linq.Enumerable)
Изначальная цель - вызов generic-функций в статических классах через Reflection.
System.Type::GetType("System.Linq.Enumerable") возвращает ошибку для статических классов.
__________________
Дмитрий
Старый 16.03.2020, 20:25   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Damn Посмотреть сообщение
Как в Ax2009 получить объект System.Type для статических классов .NET Framework ?
А как это сделать не в Аксапте, а в чистом дот нете?
Старый 16.03.2020, 20:50   #3  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
В чистом дотнете для этого используют typeof(), если судить по примерам, встречающимся в поиске.

Примеров, где имя статического класса приходило бы на вход в виде строки, я не нашёл.
__________________
Дмитрий
Старый 16.03.2020, 21:17   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Вот на просторах интернета нашёл, что нужно ещё указывать имя сборки
Код:
Type t = Type.GetType("System.Linq.Enumerable, System.Core", true);
https://social.msdn.microsoft.com/Fo...s-by-full-name

Последний раз редактировалось S.Kuskov; 16.03.2020 в 21:30.
За это сообщение автора поблагодарили: Damn (4).
Старый 17.03.2020, 07:09   #5  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Огромное спасибо.
В моём случае я стал использовать следующую конструкцию :
X++:
SysCLRType::newFromTypeName("System.Linq.Enumerable, System.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a").parmClrType()
В референсы добавил ссылки :
* System.Linq
* System.Core
Статические функции класса Enumerable вызываются корректно.
__________________
Дмитрий
За это сообщение автора поблагодарили: S.Kuskov (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
daxrunbase: AOT property for kernel objects are readable via reflection Blog bot DAX Blogs 0 05.10.2018 19:12
emeadaxsupport: AX2012 and AX2009 or AX4 side by side - AOS performance counters overwritten Blog bot DAX Blogs 0 13.03.2012 18:11
axinthefield: Choosing a Single Deployment or Multiple Deployments of AX2009 Blog bot DAX Blogs 0 15.06.2011 03:25
Khue Trinh: Fill Utility in AX2009 Blog bot DAX Blogs 0 28.09.2010 10:05
Shekhar: Dynamics AX2009 : Standalone Installation on Vista with Role centres and workflow. Blog bot DAX Blogs 0 30.03.2010 15:05

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

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

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