Как динамически создать класс C#, который наследует от общего базового класса, ссылающегося на себя (t: base )?C#

Место общения программистов C#
Anonymous
Как динамически создать класс C#, который наследует от общего базового класса, ссылающегося на себя (t: base )?

Сообщение Anonymous »

Я пытаюсь динамически генерировать C# class t во время выполнения, используя Offuret.emit (или другие методы создания динамического типа). Задача состоит в том, что базовый класс представляет собой общий тип U , который является уже статически определенным , и я хочу, чтобы динамически созданный класс наследовал от него, используя себя в качестве аргумента типа. Другими словами, я хочу создать тип, который удовлетворяет: < /p>

Код: Выделить всё

class T : U { }
Сложность заключается в том, что T не существует в тот момент, когда мне нужно указать общий аргумент для базового класса. Я пробовал подходы, такие как: < /p>

Код: Выделить всё

Type baseType = typeof(U).MakeGenericType(dynamicTypeBuilder); // incorrect
… Но это не компилируется, потому что Dynamictypebuilder еще не является завершенным типом.
Есть ли способ в C# для динамического создания типа t , что он определяет от общего базового класса u , где t определяется? Если да, то как это можно сделать, используя отражение. EMIT или аналогичные механизмы генерации типа выполнения?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -base-clas

Вернуться в «C#»