Из Type переменной в T параметр генерации - C#

Узнай цену своей работы

Формулировка задачи:

Assembly.GetExecutingAssembly().GetTypes().ToList().ForEach(o => {
    Singleton<TYPE>.Setup(Assembly.GetExecutingAssembly().CreateInstance($"{o.Namespace}.{o.Name}"));
});
Вот ток беда, я не знаю как из

o

извлечь, а точнее конвертировать в TYPE. Точнее в T который помечен в примере как

TYPE

Задача: динамически пройтись по всем объектам и объявить из в Singleton.
А сори, не там разместил =( Если можно - модеры, перенесите пожалуйста в C# для начинающих. Я случайно перепутал разделы) А если кто знает ответ - буду примного благодарен)

Решение задачи: «Из Type переменной в T параметр генерации»

textual
Листинг программы
Type singletonType = typeof(Singleton<>);
 
Type[] assemblyTypes = Assembly.GetExecutingAssembly().GetTypes();
 
foreach (Type asmType in assemblyTypes)
{
    Type closedType = singletonType.MakeGenericType(asmType);
    MethodInfo setupMethod = closedType.GetMethod("Setup", BindingFlags.Public | BindingFlags.Static);
    
    object typeInstance = Activator.CreateInstance(asmType, true);
    
    setupMethod.Invoke(null, new object[] { typeInstance });
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5
Похожие ответы