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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.05.2012, 14:38   #1  
VORP is offline
VORP
Участник
Аватар для VORP
 
146 / 95 (4) ++++
Регистрация: 26.05.2006
Вызывать Generic функции из аксапты можно, если использовать .NET рефлекшен:
System.Reflection.MethodInfo - makeGenericMethod
За это сообщение автора поблагодарили: alexbn (1), Logger (10), S.Kuskov (3), someOne (3).
Старый 25.05.2012, 12:09   #2  
someOne is offline
someOne
Участник
Аватар для someOne
 
174 / 432 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Цитата:
Сообщение от VORP Посмотреть сообщение
Вызывать Generic функции из аксапты можно, если использовать .NET рефлекшен:
System.Reflection.MethodInfo - makeGenericMethod
Спасибо! Навело на мысль!!!

Я думал что, например, такой код из C#
X++:
System.Collections.Generic.List<int> l = new System.Collections.Generic.List<int>();

l.Add(1);
l.Add(2);

Console.WriteLine(l.Count);
В Аксапте сделать не реально. Но оказалось что можно, с изварещениями конечно:
X++:
static void Job67(Args _args)
{
    System.Type                     type;
    System.Object                   myIntList;
    System.Reflection.MethodInfo    methodAdd;
    System.Reflection.PropertyInfo  propertyCount;
    System.Object[]                 parameters;
    
    System.Object[]                 nil;
    
    System.Object                   nl;
    int                  cnt;
    ;
    type = System.Type::GetType("System.Collections.Generic.List`1[System.Int32]");
    
    myIntList = System.Activator::CreateInstance(type);
    
    methodAdd = type.GetMethod("Add");
    
    parameters = new System.Object[1]();

    parameters.SetValue(1, 0);
    methodAdd.Invoke(myIntList, parameters);
    
    parameters.SetValue(2, 0);
    methodAdd.Invoke(myIntList, parameters);
    
    propertyCount = type.GetProperty("Count");
    
    nil = new System.Object[0]();
    
    cnt = propertyCount.GetValue(myIntList, nil);
    
    info(strFmt("%1", cnt));
}
Может поможет кому...
За это сообщение автора поблагодарили: mazzy (2), Lemming (1), alexbn (1), sukhanchik (6), Logger (10), b_nosoff (1), Morpheus (2), coolibin (3), Krasher (1), perestoronin (1), S.Kuskov (3), plumbum (3), Cardagant (1), Товарищ ♂uatr (1), MazZzDaI (1).
Старый 05.06.2015, 13:03   #3  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
305 / 873 (30) +++++++
Регистрация: 23.10.2012
Добрый день!
(вопрос относится к данной теме весьма косвенно)
Чем можно инициализировать .Net Delegate class? А именно: System.EventHandler.

Последний раз редактировалось Товарищ ♂uatr; 05.06.2015 в 14:42.
Старый 05.06.2015, 15:10   #4  
makbeth is offline
makbeth
Участник
Аватар для makbeth
КОРУС Консалтинг
 
43 / 52 (2) ++++
Регистрация: 15.05.2007
Адрес: Санкт-Петербург
Цитата:
Сообщение от Товарищ ♂uatr Посмотреть сообщение
Чем можно инициализировать .Net Delegate class? А именно: System.EventHandler.
В 2012 есть обертка для обработчиков событий на X++ в виде ManagedEventHandler.
В более ранних версиях - не получится ничем.
За это сообщение автора поблагодарили: Товарищ ♂uatr (1), Logger (1).
Теги
.net, clr, generic, type parameters, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: New Content for Microsoft Dynamics AX 2012 : October 2011 Blog bot DAX Blogs 0 27.10.2011 17:11
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
daxdilip: Whats New in Dynamics AX 2012 (A brief extract from the recently held Tech Conf.) Blog bot DAX Blogs 7 31.01.2011 12:35
dynamics-ax: Dynamics AX 2012 - Table & Type Hierarchies Blog bot DAX Blogs 0 27.01.2011 00:13
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05

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

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

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