Показать сообщение отдельно
Старый 16.10.2023, 13:10   #23  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,877 / 3141 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Готового примера нет.

Но как я понимаю, вам надо не дженерик тип вызвать, а дженерик конструктор для типа "DocumentFormat.OpenXml.EnumValue`1"
т.е. сам этот тип "DocumentFormat.OpenXml.EnumValue`1" не получится использовать, нужно конкретный производный тип подставить.

Копайте в эту сторону.

У меня была похожая задача.
Делали обмен с кафкой, используя .net компонент Confluent.Kafka.dll
там вся библиотека построена на дженериках.

и для того чтобы заменить одну строку C# кода такого вида
X++:
consumer = new ConsumerBuilder<String, String>(config).Build();
в джобе пришлось написать десяток строк кода.
Сначала создаем в аксапте объект с типом Confluent.Kafka.ConsumerBuilder`2
а затем для него создаем экземпляр System.Reflection.ConstructorInfo
constructorInfo = System.Type.GetConstructor(...)
при помощи которого уже и вызываем конструктор типа
X++:
new ConsumerBuilder<String, String>
Во вложении простой проект с примером джобика (KafkaGenericTest) и ссылками на документацию
Я поигрался недавно с этим, получил рабочий код, но пока отложил, так как коллега написал сборку обертку, которая в аксапту выставляет классы обертки над дженериками, так что без всего этого можно обойтись стало.
Вложения
Тип файла: zip PKoz_NetGenericConstructor_dev.zip (7.7 Кб, 56 просмотров)

Последний раз редактировалось Logger; 16.10.2023 в 13:18.
За это сообщение автора поблагодарили: LETTO (3).